{
 "cells": [
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:29.476571Z",
     "start_time": "2024-09-19T12:31:28.371682Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import os, sys, pickle\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.dates as mdates\n",
    "\n",
    "import seaborn as sns\n",
    "\n",
    "from datetime import date\n",
    "\n",
    "from sklearn.model_selection import KFold, train_test_split, StratifiedKFold, cross_val_score, GridSearchCV\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.linear_model import SGDClassifier, LogisticRegression\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import log_loss, roc_auc_score, auc, roc_curve\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "import xgboost as xgb\n",
    "import lightgbm as lgb\n",
    "%matplotlib inline\n",
    "%config InlineBackend.figure_format = 'retina'\n"
   ],
   "id": "d9b59e85e97c6643",
   "outputs": [],
   "execution_count": 1
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:38.239395Z",
     "start_time": "2024-09-19T12:31:31.005694Z"
    }
   },
   "cell_type": "code",
   "source": [
    "\n",
    "dftest = pd.read_csv(r'D:\\实训\\实训一\\python-xm\\o2o优惠券预测\\ccf_offline_stage1_test_revised (1).csv',keep_default_na=False)\n",
    "dfoff = pd.read_csv(r'D:\\实训\\实训一\\python-xm\\o2o优惠券预测\\ccf_offline_stage1_train.csv',keep_default_na=False)\n",
    "dfon = pd.read_csv(r'D:\\实训\\实训一\\python-xm\\o2o优惠券预测\\ccf_online_stage1_train.csv',keep_default_na=False)\n",
    "\n",
    "print(dfoff.head(5))"
   ],
   "id": "d4becf7a30e56ba7",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   User_id  Merchant_id Coupon_id Discount_rate Distance Date_received  \\\n",
      "0  1439408         2632      null          null        0          null   \n",
      "1  1439408         4663     11002        150:20        1      20160528   \n",
      "2  1439408         2632      8591          20:1        0      20160217   \n",
      "3  1439408         2632      1078          20:1        0      20160319   \n",
      "4  1439408         2632      8591          20:1        0      20160613   \n",
      "\n",
      "       Date  \n",
      "0  20160217  \n",
      "1      null  \n",
      "2      null  \n",
      "3      null  \n",
      "4      null  \n"
     ]
    }
   ],
   "execution_count": 2
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:40.622970Z",
     "start_time": "2024-09-19T12:31:40.615256Z"
    }
   },
   "cell_type": "code",
   "source": "dfoff.info()",
   "id": "45fa93e7fd21e780",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1754884 entries, 0 to 1754883\n",
      "Data columns (total 7 columns):\n",
      " #   Column         Dtype \n",
      "---  ------         ----- \n",
      " 0   User_id        int64 \n",
      " 1   Merchant_id    int64 \n",
      " 2   Coupon_id      object\n",
      " 3   Discount_rate  object\n",
      " 4   Distance       object\n",
      " 5   Date_received  object\n",
      " 6   Date           object\n",
      "dtypes: int64(2), object(5)\n",
      "memory usage: 93.7+ MB\n"
     ]
    }
   ],
   "execution_count": 3
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:43.689269Z",
     "start_time": "2024-09-19T12:31:41.916790Z"
    }
   },
   "cell_type": "code",
   "source": [
    "print('有优惠券，购买商品条数', dfoff[(dfoff['Date_received'] != 'null') & (dfoff['Date'] != 'null')].shape[0])\n",
    "print('无优惠券，购买商品条数', dfoff[(dfoff['Date_received'] == 'null') & (dfoff['Date'] != 'null')].shape[0])\n",
    "print('有优惠券，不购买商品条数', dfoff[(dfoff['Date_received'] != 'null') & (dfoff['Date'] == 'null')].shape[0])\n",
    "print('无优惠券，不购买商品条数', dfoff[(dfoff['Date_received'] == 'null') & (dfoff['Date'] == 'null')].shape[0])"
   ],
   "id": "c66a5bf419bc5f93",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "有优惠券，购买商品条数 75382\n",
      "无优惠券，购买商品条数 701602\n",
      "有优惠券，不购买商品条数 977900\n",
      "无优惠券，不购买商品条数 0\n"
     ]
    }
   ],
   "execution_count": 4
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:46.022189Z",
     "start_time": "2024-09-19T12:31:44.992984Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 在测试集中出现的用户但训练集没有出现\n",
    "print('1. 用户id在训练集中，但不在测试集中', set(dftest['User_id']) - set(dfoff['User_id']))\n",
    "# 在测试集中出现的商户但训练集没有出现\n",
    "print('2.训练集中的MANUANT_ID不在测试集中', set(dftest['Merchant_id']) - set(dfoff['Merchant_id']))"
   ],
   "id": "b20467ceade4c08",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1. 用户id在训练集中，但不在测试集中 {2495873, 1286474}\n",
      "2.训练集中的MANUANT_ID不在测试集中 {5920}\n"
     ]
    }
   ],
   "execution_count": 5
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:46.513034Z",
     "start_time": "2024-09-19T12:31:46.378808Z"
    }
   },
   "cell_type": "code",
   "source": [
    "print('Discount_rate 类型:',dfoff['Discount_rate'].unique())\n",
    "print('Distance 类型:', dfoff['Distance'].unique())"
   ],
   "id": "9f9ddd3cdd5a82bb",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Discount_rate 类型: ['null' '150:20' '20:1' '200:20' '30:5' '50:10' '10:5' '100:10' '200:30'\n",
      " '20:5' '30:10' '50:5' '150:10' '100:30' '200:50' '100:50' '300:30'\n",
      " '50:20' '0.9' '10:1' '30:1' '0.95' '100:5' '5:1' '100:20' '0.8' '50:1'\n",
      " '200:10' '300:20' '100:1' '150:30' '300:50' '20:10' '0.85' '0.6' '150:50'\n",
      " '0.75' '0.5' '200:5' '0.7' '30:20' '300:10' '0.2' '50:30' '200:100'\n",
      " '150:5']\n",
      "Distance 类型: ['0' '1' 'null' '2' '10' '4' '7' '9' '3' '5' '6' '8']\n"
     ]
    }
   ],
   "execution_count": 6
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:51.250096Z",
     "start_time": "2024-09-19T12:31:47.830915Z"
    }
   },
   "cell_type": "code",
   "source": [
    "\n",
    "def getDiscountType(row):\n",
    "    if row == 'null':\n",
    "        return 'null'\n",
    "    elif ':' in row:\n",
    "        return 1\n",
    "    else:\n",
    "        return 0\n",
    "\n",
    "def convertRate(row):\n",
    "    \"\"\"Convert discount to rate\"\"\"\n",
    "    if row == 'null':\n",
    "        return 1.0\n",
    "    elif ':' in row:\n",
    "        rows = row.split(':')\n",
    "        return 1.0 - float(rows[1])/float(rows[0])\n",
    "    else:\n",
    "        return float(row)\n",
    "\n",
    "def getDiscountMan(row):\n",
    "    if ':' in row:\n",
    "        rows = row.split(':')\n",
    "        return int(rows[0])\n",
    "    else:\n",
    "        return 0\n",
    "\n",
    "def getDiscountJian(row):\n",
    "    if ':' in row:\n",
    "        rows = row.split(':')\n",
    "        return int(rows[1])\n",
    "    else:\n",
    "        return 0\n",
    "\n",
    "def processData(df):\n",
    "    \n",
    "    # convert discunt_rate\n",
    "    df['discount_rate'] = df['Discount_rate'].apply(convertRate)\n",
    "    df['discount_man'] = df['Discount_rate'].apply(getDiscountMan)\n",
    "    df['discount_jian'] = df['Discount_rate'].apply(getDiscountJian)\n",
    "    df['discount_type'] = df['Discount_rate'].apply(getDiscountType)\n",
    "    print(df['discount_rate'].unique())\n",
    "    \n",
    "    # convert distance\n",
    "    df['distance'] = df['Distance'].replace('null', -1).astype(int)\n",
    "    print(df['distance'].unique())\n",
    "    return df\n",
    "\n",
    "dfoff = processData(dfoff)\n",
    "dftest = processData(dftest)"
   ],
   "id": "d7ca30c147b36cd5",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1.         0.86666667 0.95       0.9        0.83333333 0.8\n",
      " 0.5        0.85       0.75       0.66666667 0.93333333 0.7\n",
      " 0.6        0.96666667 0.98       0.99       0.975      0.33333333\n",
      " 0.2        0.4       ]\n",
      "[ 0  1 -1  2 10  4  7  9  3  5  6  8]\n",
      "[0.83333333 0.9        0.96666667 0.8        0.95       0.75\n",
      " 0.98       0.5        0.86666667 0.6        0.66666667 0.7\n",
      " 0.85       0.33333333 0.94       0.93333333 0.975      0.99      ]\n",
      "[ 1 -1  5  2  0 10  3  6  7  4  9  8]\n"
     ]
    }
   ],
   "execution_count": 7
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:55.857546Z",
     "start_time": "2024-09-19T12:31:55.846986Z"
    }
   },
   "cell_type": "code",
   "source": "dfoff.head(2)",
   "id": "bc87c4097bb7e8de",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  Merchant_id Coupon_id Discount_rate Distance Date_received  \\\n",
       "0  1439408         2632      null          null        0          null   \n",
       "1  1439408         4663     11002        150:20        1      20160528   \n",
       "\n",
       "       Date  discount_rate  discount_man  discount_jian discount_type  \\\n",
       "0  20160217       1.000000             0              0          null   \n",
       "1      null       0.866667           150             20             1   \n",
       "\n",
       "   distance  \n",
       "0         0  \n",
       "1         1  "
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>Merchant_id</th>\n",
       "      <th>Coupon_id</th>\n",
       "      <th>Discount_rate</th>\n",
       "      <th>Distance</th>\n",
       "      <th>Date_received</th>\n",
       "      <th>Date</th>\n",
       "      <th>discount_rate</th>\n",
       "      <th>discount_man</th>\n",
       "      <th>discount_jian</th>\n",
       "      <th>discount_type</th>\n",
       "      <th>distance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1439408</td>\n",
       "      <td>2632</td>\n",
       "      <td>null</td>\n",
       "      <td>null</td>\n",
       "      <td>0</td>\n",
       "      <td>null</td>\n",
       "      <td>20160217</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>null</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1439408</td>\n",
       "      <td>4663</td>\n",
       "      <td>11002</td>\n",
       "      <td>150:20</td>\n",
       "      <td>1</td>\n",
       "      <td>20160528</td>\n",
       "      <td>null</td>\n",
       "      <td>0.866667</td>\n",
       "      <td>150</td>\n",
       "      <td>20</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 8
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:57.170875Z",
     "start_time": "2024-09-19T12:31:57.159301Z"
    }
   },
   "cell_type": "code",
   "source": "dftest.head(2)",
   "id": "d9e959c630534bd0",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  Merchant_id  Coupon_id Discount_rate Distance  Date_received  \\\n",
       "0  4129537          450       9983          30:5        1       20160712   \n",
       "1  6949378         1300       3429          30:5     null       20160706   \n",
       "\n",
       "   discount_rate  discount_man  discount_jian  discount_type  distance  \n",
       "0       0.833333            30              5              1         1  \n",
       "1       0.833333            30              5              1        -1  "
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>Merchant_id</th>\n",
       "      <th>Coupon_id</th>\n",
       "      <th>Discount_rate</th>\n",
       "      <th>Distance</th>\n",
       "      <th>Date_received</th>\n",
       "      <th>discount_rate</th>\n",
       "      <th>discount_man</th>\n",
       "      <th>discount_jian</th>\n",
       "      <th>discount_type</th>\n",
       "      <th>distance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4129537</td>\n",
       "      <td>450</td>\n",
       "      <td>9983</td>\n",
       "      <td>30:5</td>\n",
       "      <td>1</td>\n",
       "      <td>20160712</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>30</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6949378</td>\n",
       "      <td>1300</td>\n",
       "      <td>3429</td>\n",
       "      <td>30:5</td>\n",
       "      <td>null</td>\n",
       "      <td>20160706</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>30</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 9
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:31:58.674101Z",
     "start_time": "2024-09-19T12:31:58.287120Z"
    }
   },
   "cell_type": "code",
   "source": [
    "date_received = dfoff['Date_received'].unique()\n",
    "date_received = sorted(date_received[date_received != 'null'])\n",
    "\n",
    "date_buy = dfoff['Date'].unique()\n",
    "date_buy = sorted(date_buy[date_buy != 'null'])\n",
    "\n",
    "date_buy = sorted(dfoff[dfoff['Date'] != 'null']['Date'])\n",
    "print('优惠券收到日期从',date_received[0],'到', date_received[-1])\n",
    "print('消费日期从', date_buy[0], '到', date_buy[-1])"
   ],
   "id": "44ed2608e8b79328",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "优惠券收到日期从 20160101 到 20160615\n",
      "消费日期从 20160101 到 20160630\n"
     ]
    }
   ],
   "execution_count": 10
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:01.749925Z",
     "start_time": "2024-09-19T12:32:01.279846Z"
    }
   },
   "cell_type": "code",
   "source": [
    "couponbydate = dfoff[dfoff['Date_received'] != 'null'][['Date_received', 'Date']].groupby(['Date_received'], as_index=False).count()\n",
    "couponbydate.columns = ['Date_received','count']\n",
    "buybydate = dfoff[(dfoff['Date'] != 'null') & (dfoff['Date_received'] != 'null')][['Date_received', 'Date']].groupby(['Date_received'], as_index=False).count()\n",
    "buybydate.columns = ['Date_received','count']"
   ],
   "id": "b91c0d0b054e28d5",
   "outputs": [],
   "execution_count": 11
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:04.701488Z",
     "start_time": "2024-09-19T12:32:02.930745Z"
    }
   },
   "cell_type": "code",
   "source": [
    "sns.set_style('ticks')\n",
    "sns.set_context(\"notebook\", font_scale= 1.4)\n",
    "plt.figure(figsize = (12,8))\n",
    "date_received_dt = pd.to_datetime(date_received, format='%Y%m%d')\n",
    "\n",
    "plt.subplot(211)\n",
    "plt.bar(date_received_dt, couponbydate['count'], label = 'number of coupon received' )\n",
    "plt.bar(date_received_dt, buybydate['count'], label = 'number of coupon used')\n",
    "plt.yscale('log')\n",
    "plt.ylabel('Count')\n",
    "plt.legend()\n",
    "\n",
    "plt.subplot(212)\n",
    "plt.bar(date_received_dt, buybydate['count']/couponbydate['count'])\n",
    "plt.ylabel('Ratio(coupon used/coupon received)')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ],
   "id": "d167f49a234ace8f",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1200x800 with 2 Axes>"
      ],
      "image/png": "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XqwvvvhC58+ft9snJCRE/fv311NPPaXg4GCH423atElDhw61tn/66SfVqFFDL7zwgtasWWPoW6NGDU2YMEF9+vRxqWZ7jh07po8++kjff/+90tLS7PapUaOG7r//fg0bNizfANkjjzyizZs3292X+31J+d9PrsrOztY333yjJUuWaN++fXb7eHt767bbbtOYMWPUrFkzp8bdvXu3PvroI61fv95mablrateuraFDh2rw4MEFhnkWLFighQsXWtvXnvOC5L0nnnnmGY0ePdrh+CEhIdq0aZOys7P14YcfKiYmRvHx8TbHhISE6MEHH9QTTzzh0nJ5V65c0eeff65ly5YpNjbWbh8/Pz/dcsstTp/zbt26Wce69h6TkpI0d+5cffPNN0pKSrI5xt/fX7169dK4ceMUERHhdP0FKa7nMCMjQ8uXL9fSpUt18uRJuz8rMDBQvXr10ujRo11+D6dOndKHH36o7777TsnJyXb71KpVSw8//LCGDh3qdLhmw4YNeu+997Rr1y5lZ2fb7Pfx8dGNN96ocePGqVWrVgWOl/dz4dChQ9bXK1as0Msvv2zom7tdkF9++UVPPvmktf3YY48Zft/lVtLX48cff9S7775r93PI19dXPXv21KRJkxQWFubSuAAAAADKn9L/J4UAAAAAAKBc+fLLL9W3b1/9/PPPdgNI0tUZkubPn6/7779fZrPZzRXmLzMzUxMmTNDzzz9vN4AkSSkpKfr3v/+txx9/XKmpqZKkRYsW6dFHH7UbQJKuhk2+/fZbDRw40KX3u2/fPvXu3Vvff/+93XOZk5OjHTt2aNiwYZowYUK+gZO8tm/frh49emjBggX5BpAkKSEhQYsXL1b37t31559/Ol33Na+++qpN8EG6Gqw6ceKEy+Pllp2drQ8++EB9+vTRqlWr8g0gXft57777ru68885CvY+SEBsbq8GDB2vixIn5BpAkKSsrSz/99JMGDBigJUuWOBzTYrFoxowZeuCBB7R27VqH90NsbKxmzJihu+++2xCsKA0sFotGjhypuXPn2g0gSVfvzUWLFqlv375O179z50716dNHM2fOzDeAdO3n//TTT+rbt6/efPNNu2EWR649t59++qndAJIkpaWladWqVbrnnnu0a9cul8Z3lavP4V9//aXevXtr2rRp+QZepKufhStWrNBdd92l7777zul6li5dqnvuuUeff/55vgEk6ersYLNmzdLAgQMdfk5JUnJyskaOHKkRI0Zox44d+V6zzMxM/f7777r//vs1c+ZMl69tbr169VLlypWt7fw+p/Pz1VdfGdr5BWxL8npYLBaNHz9eTz/9dL6fQxkZGfrmm2/Uu3dvh59VAAAAACoGZkICAAAAAABu88svv2jJkiXKysqSJAUFBally5YKCQnRhQsXtHv3bkMw4vDhw5owYYL+9a9/eapkg6lTp2r16tXWdsOGDdWgQQNlZ2dr9+7dunTpknXfli1btHjxYoWEhGjevHnW7Y0bN1bDhg2VmpqqPXv2KCEhwbovNjZWr7/+uubPn19gLYmJiXr88cetx3t5eally5aKjIxUQkKCdu7cqfT0dGv/1atXKzU1VQsWLHC49Ngvv/yiMWPGGI6VpKioKDVu3Fi+vr6KjY3V/v37lZOTI+lq4GP48OH65z//qTvvvLPA2iVp/fr1Nl+y53bfffc5NU5+pk2bpk8++cSwzWQyqVmzZqpTp44yMjJ09OhRnT592ro/Pj5ew4cP16xZs9SrV68i/fyiOH36tAYPHmwTrAgKClKrVq0UEhKiS5cuadeuXdbrlJmZqTfeeEN+fn566KGHbMbMysrS2LFjtX79esN2b29vtWjRQpGRkbpy5YoOHjyoCxcuGGp58MEH9cEHH6hTp04l8G5d9/rrr2vDhg3Wdnh4uFq0aCFJOnDggM6dO2fdd+rUKT322GP67LPPVL9+/XzH3Lp1qx5//HGb+75GjRpq1qyZKleurHPnzmnv3r3Wz6+cnBwtXrxYJ0+e1IIFC5xaGiw2NlYjRozQxYsXJV2dRaZFixaKiIhQUlKS9u/fb/hMSEpK0siRI7Vu3TqXZnRylqvP4e7duzV8+HAlJiYatoeHh6t58+by9/dXXFyc9uzZYw3cpKam6vnnn1d8fLwefvhhh/XMmzdPixYtstnetGlTRUVFycvLSwcPHtSpU6es+w4ePKihQ4dq5cqVds9RQkKChg4dahNGCwwMtD5PiYmJ2rNnjzX0lJOTo5iYGJ07d07z5s0r1HKNgYGB6tmzp1atWiVJunTpkv73f/9XXbt2LfDYpKQkw7PasmVLXXfddTb9SvJ6ZGdna8yYMfr5558N2ytXrqw2bdooODhY586d0549e5SdnS2z2awnnnjC6bArAAAAgPKJEBIAAAAAAHCbxYsXS5KCg4M1fvx49evXz7DU06VLlzRz5kxD0Of333/Xtm3b1KFDB7fXm1tWVpaWL18u6eoXwq+99ppat25t3W+xWDRr1iwtW7bMuu2DDz6wfiHbqlUrTZkyRddff711f3p6uubPn6+PPvrIum3dunWKjY1V7dq1HdaTe4aQ2267Ta+88orq1Klj2P/OO+8oJibGGhZat26dPvvsMw0ePNjumKdOndL48eMNQYx27dpp8uTJhvcqSefPn9fcuXOtAYaMjAxNnDhRX375perVq+ewdunqElvXdO7cWS1bttTly5e1efNmhYSEOAyMFGTx4sU2AaTevXvr+eefV61atQzbt23bpmnTplmX2svIyNCkSZPUsGFDw1Jbs2fPts6mtGzZMsN1fuutt9SmTRtruyhhkezsbI0bN84QQAoJCbEui5V72an4+HjNmjXLGnKQpJkzZ+rmm29WVFSUYdw33njDEGowmUx6+OGHNWrUKMMSgDk5OdqwYYOmT59unVXlypUrGjt2rL788stiXRqsMBISErRy5UpJV8/Lyy+/rHvuuccaAMrJydGaNWs0depU66xiZrNZzz//vL744gt5e3vbjHnixAmNGjXKcN/Xr19fkydP1q233moIoJjNZi1cuFCffvqp9bn68ccf9fbbb+vZZ58tsP4vv/xS0tXQYHR0tJ544gmFhoZa96enp2vZsmWaO3euNexkNpu1bNkyPfXUUy6dK2e48hwmJiZq7NixhsBLo0aN9NJLL+mmm24yjHttJqolS5YoOztbOTk5mjFjhq6//nq1b9/ebi3r16+3CSDdeeedmjhxos1nyi+//KKXX37ZGpg7fvy4Zs2apSlTptiM++KLLxoCSFWqVNGECRPUv39/w/NksVj05Zdfavbs2bp8+bIkac2aNWrRooWeeOIJuzUXZMCAAYbnc/Xq1U6FkNasWWO4H+3NglTS12Pp0qWGAJK3t7dGjRql4cOHG5ZJPXv2rHVJ0NxBXAAAAAAVE8uxAQAAAAAAt6pataq++OILDRo0yBBAkqSwsDC99dZb6tatm2H72rVr3VmiQ23atNGyZctsQjl+fn6aPHmymjRpYt2WlpamrKwstWzZUh9//LEhgCRJlSpV0oQJE3T77bdbt2VnZ2vz5s1O1zNgwAAtWrTIEECSrgZhXnjhBb3yyiuG7XPmzMl3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+5f3zqhdu7YiIyOt7X379unYsWNOH7969WrDl+25z4k7tG/f3tD+8ccfnT5206ZNysrKUmxsrDZv3iwfn6sToLdu3dowO9KGDRuUmJjo9Lhff/21oW3vnLj7ObwW3ChITk6O1qxZY237+vrqhhtuMPTJ+35cWdbKbDbrt99+s7a9vb1trmF50alTJ0PblfNksVjUvXt3tWvXTvfee69Gjhxps8RXu3btrK/T09MNswI5ci2Ak5ycrIMHD+rUqVPWmazy1uzKZ5okPf/882rdurW6d++uxx9/XDt27HDpeHvyLrN27RnPXVujRo3Utm1bh+OU5PXw8/MzPBcXLlzQ5s2bnRp78+bNht81AAAAACoeQkgAAAAAAKDMCgsLM7S3b99e4DFJSUk2wYqyatGiRQX2ycrK0sKFCw3bBgwYYNPv3nvvNbQ//PBDp79Mfu+992SxWJSUlKQDBw4oLS3NpSWtilPe9/HPf/7TqeOSkpK0ePFiw7aePXsWV1lOadSokWH5tX379mnTpk0FHpeenq6vvvrK2q5cubI1pODv728IPaSnp+u9995zqp7Y2FitWLHCsM3eOSnMc3jq1Cn98ssvTtWR1+rVq3X+/PkC+3399deGpaS6du1qsxxX7969DTM5LV++3OnlwN59913D7DU333yzgoKCnDq2rOndu7eh/fnnn9ssdZefTz/9VBcvXtSVK1d0+PBhnT171maGsXvuucfQzvss5uerr74yzNR12223WV937txZ4eHh1va+ffv0/fffOzXu3r17tX79emVkZOjkyZPatGmT6tWr59SxBRk4cKD19ZkzZ7R+/XpDwMne53NeJX09+vTpY2gvXLjQqdmQPvzwQ6dqAAAAAFB+EUICAAAAAABlVrNmzQyzvPz555/avXt3vv0zMjL02muv6eLFi+4or8StXbtWn3zyicM+b775puGcNGzY0PBF/TVdu3ZVkyZNrO24uDiNGzfO4bI9krR+/XqbGh577LGCiy8hDz/8sOGe+OGHH/TBBx84PMZisWj8+PGG8Em9evXUvXv3EqszP3nP3UsvvVRg4GbOnDmG2vv06WMIwzz++OOG/v/+978LnDklMTFRY8eONSyz17lzZ7Vu3dqmb95t3333nWJjY/MdOyUlRZMnT3Z6+cS8kpOTNX78eIfLvh08eFBvvPGGYduIESNs+jVq1Mjw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TbMG7LKysrRr1y7Ds5DbXXfdpTfffFN+fn5299euXVv/+c9/9MwzzxjCMRaLRdu2bcu3lrCwMM2ZM0ddunRxWHNh1KxZU//zP/9jOGdhYWF2l8p0xB3XIyAgQG+99Zb1emRmZmr79u02ff39/TV37lytWbOGEBIAAABQgRFCAgAAAAB4THgVf22c5Nkv+8uT8Cr+ni7BY/r27asWLVpozpw5+u2332xmKpGkBg0aaMSIEerfv78HKiwZt956q1auXKl//OMfdmd18vX11R133KHx48crKirK6XG7deumH3/8UYsXL9aqVascho/atGmjoUOHqnfv3oV6DyXFZDJp9OjR6tWrlxYuXKiff/5ZqampdvtGRERo4MCBevTRR1W1alU3V2pf9erVtXz5cn399df66KOPrIGbvPz9/dWvXz899dRTioiIcDimr6+vpkyZogEDBuidd97RH3/8YZhJKbd69erpoYce0kMPPSR/f+c+W5588kl16tRJc+fO1datW22WMpOuhh/GjBnjctgit7CwMP3nP//R22+/rc8//9xmRq5rP2fUqFG68847nR63bdu2Wrt2rZYtW6bPPvvMZlaca/z8/HT77bdrxIgRhqW+Koq2bdvqhx9+0Mcff6zly5fr9OnT+fZt0qSJBg8erEGDBsnb29up8R988EHddNNNWrhwoX744Qe711eSmjdvrhEjRqhXr14Fjlm9enV99tln+u9//6t//etf2rt3r93781rffv36acSIEYblzorbwIEDDUGhPn36FGoJyJK+Ho8++qi6dOmiefPmacOGDTZLvUlSp06d9Prrr6tx48Zas2aNy+8BAAAAQPlhysnvf20BZdzWrVs1ZMgQa/uTTz5Rx44dPVgRAKC4nU1MVZcZ6+3u2zipmyKrOv5rZ09xVLdUumsHAOnqrBaZmZny8fFRkyZNPF0OYCMhIUGbN2/WuXPnlJaWpvDwcDVp0kQtWrTwdGkl6uTJk9qxY4fOnz+vgIAARUZG6oYbblCVKlWKPPahQ4d06NAhmc1mpaamKjAwUJGRkWrdunWBwZfS4tqsJ6dPn1Z8fLykq2GD5s2bq1mzZjKZTB6u0LHTp09r9+7dunjxoq5cuaLg4GA1aNBA7dq1czoklFdKSoq2bdumc+fOKT4+Xt7e3goPD1eLFi0cLr3mjLi4OG3dulVxcXHKzMxURESErr/++kKNu2DBAi1cuNDaXrp0qW644Qbre9i4caNOnz4ti8Wi8PBwtW3bVvXr1y9S/ZJ09OhRHThwQJcuXVJqaqqqVKmihg0bqk2bNgoMDCzy+OXF8ePHtW/fPpnNZiUnJysgIEDh4eFq1aqVS+FHe/I+tz4+PqpevbratWtXpLHNZrO2b9+uCxcuKDExUb6+vgoNDVXz5s3VtGlTpwM6pVFJXo+LFy9q69atio2NVXZ2tvV5q1evXjFV7xj/BgUAAACKV0lkKpgJCQAAAAAAlCshISHq0aOHp8twu7p166pu3bolMvZ1112n6667rkTGdhc/P78SWVbJXerUqaM6deoU65iBgYH5Lt9WVOHh4U7NUFNUgYGBLs125IrGjRurcePGJTJ2eVK/fv1iCX3ZU1LPbbVq1UrsvvG0krwe1atXV8+ePUtkbAAAAADlg5enCwAAAAAAAAAAAAAAAABQthFCAgAAAAAAAAAAAAAAAFAkhJAAAAAAAAAAAAAAAAAAFAkhJAAAAAAAAAAAAAAAAABFQggJAAAAAAAAAAAAAAAAQJH4eLoAoDBiYmIUExPjsI/FYnFTNQAAAAAAAAAAAAAAABUbISSUScnJyTp//rynywAAAAAAAAAAAAAAAIAIIaGMCgoKUkREhMM+FotF8fHxbqoIAAAAAAAAJWH06NEaPXq0p8sAAAAAAAAFIISEMik6OlrR0dEO+2zdulVDhgxxU0UAgOKQlZ2juKS0fPeHV/GXt5fJjRUBAAAAAAAAAAAAcAYhJAAAUGrEJaWpy4z1+e7fOKmbIqsGuLEiAAAAAAAAAAAAAM7w8nQBAAAAAAAAAAAAAAAAAMo2QkgAAAAAAAAAAAAAAAAAioQQEgAAAAAAAAAAAAAAAIAiIYQEAAAAAAAAAAAAAAAAoEgIIQEAAAAAAAAAAAAAAAAoEkJIAAAAAAAAAAAAAAAAAIqEEBIAAAAAAAAAAAAAAACAIvHxdAEAAAAoXlnZOYpLSrO7L7yKv7y9TG6uCAAAAAAAAAAAAOUdISQAAIByJi4pTV1mrLe7b+OkboqsGuDmigAAAAAAAAAAAFDeEUICAAAoBsw+BAAAAAAAAAAAgIqMEBIAAEAxYPYhAAAAAAAAAAAAVGReni4AAAAAAAAAAAAAAAAAQNnGTEgAAAClHEu9uR/nHAAAAAAAAAAAwDWEkAAAAEo5lnpzP845AAAAAAAAAACAa1iODQAAAAAAAAAAAAAAAECREEICAAAAAAAAAAAAAAAAUCSEkAAAAAAAAAAAAAAAAAAUCSEkAAAAAAAAAAAAAAAAAEXi4+kCgMKIiYlRTEyMwz4Wi8VN1QAAAAAAgIoqKytLO3bs0KFDh3T58mX5+fkpODhYUVFRateunSpVquTpEgEAAAAAANyCEBLKpOTkZJ0/f97TZQAAAAAA4FbdunVTbGysJKl27dpav369hyuq2DZv3qwXX3zRek3y+v3331WjRg03VwXAXfhMBgAAAAAjQkgok4KCghQREeGwj8ViUXx8vJsqAgAAAAAAFcnmzZs1fPhwpaen290fFhZGAAkAAAAAAFQohJBQJkVHRys6Otphn61bt2rIkCFuqggAAABAoWRnScnnPF1F+RFUU/Ly9nQVQLmXnZ2tqVOnGgJIvr6+atmypcLDw2U2mxUVFeXBCgEAAAAAANyPEBIAAAAAwHOSz0lzr/d0FeXHc/ul4NqergIo93bu3KnDhw9b2zVq1NC///1vNW7c2INVAQAAAAAAeJaXpwsAAAAAAAAAypKjR48a2g8++CABJAAAAAAAUOERQgIAAAAAAABcEB8fb2g3a9bMQ5UAAAAAAACUHoSQAAAAAAAAABdkZGQY2kFBQR6qBAAAAAAAoPQghAQAAAAAAAC4ICcnx9A2mUweqgQAAAAAAKD08PF0AQAAAAAAoOKKj4/Xtm3bdP78eaWkpCg0NFSNGjVS27Zt5eVV+v92au/evTp69Kji4uIUHBysyMhIdejQweHMOH/99Zf279+vs2fPysfHRzVr1lSnTp1UvXr1ItViNpv1559/6ty5c/Ly8lJ4eLjatWunyMjIIo0rSQcPHtThw4d16dIlZWZmqnr16mrQoIFat25dLNdp79692r59uzIzM3Xdddepc+fO8vX1LfK4uVksFu3atUvHjx9XfHy8fH19Va1aNTVt2lTNmjUr9UGiM2fOaPfu3Tp79qzS0tIUHBysOnXqqE2bNgoJCSnUmFeuXNGOHTt0+vRpJSQkyN/fX2FhYbr++uvVsGHD4n0DJcRisWjTpk2KjY1VQkKCqlSpoqZNm6pNmzby8/Mr0th///239uzZI7PZLIvFotDQUOszHhAQUGz1b9myRWfOnJHZbFaVKlVUu3Ztde7cudh+hidlZmbq4MGDOnDggBISEiRJoaGhioiIUPv27RUYGFik8f/++2/t379fFy9eVHp6uqpVq6aoqCi1b9++yJ8hf//9t3bt2qULFy7I19dXNWvWVOfOnVWtWrUijQsAAAAA5RkhJAAAAAAAUGJOnz6tO+64w9peunSpbrjhBv3111+aNWuWfvvtN2VmZtocFxoaqkceeUTDhg2Tv79/vuOvWrVKkyZNsrZnzJih/v37u1xXv379NHPmTIfje3t7a//+/ZKkb7/9VosWLdKRI0dsjgkMDNT999+v559/3hCC2LJli+bMmaMdO3bYHOPl5aVevXrppZdecvkL7gsXLuiNN97QDz/8YHMuTSaT2rZtq2eeeUY333yzS+NeuXJFixcv1hdffKHz58/b7RMSEqL+/fvrqaeeUnBwsMPxNm3apKFDh1rbP/30k2rUqKEXXnhBa9asMfStUaOGJkyYoD59+rhUsz3Hjh3TRx99pO+//15paWl2+9SoUUP333+/hg0blm+A7JFHHtHmzZvt7sv9vqT87ydXZWdn65tvvtGSJUu0b98+u328vb112223acyYMWrWrJlT4+7evVsfffSR1q9fb7O03DW1a9fW0KFDNXjw4ALDPAsWLNDChQut7WvPeUHy3hPPPPOMRo8e7XD8kJAQbdq0SdnZ2frwww8VExOj+Ph4m2NCQkL04IMP6oknnnBpubwrV67o888/17JlyxQbG2u3j5+fn2655Ranz3m3bt2sY117j0lJSZo7d66++eYbJSUl2Rzj7++vXr16ady4cYqIiHC6/oI4e87tue6666yvO3furGXLluXb98KFC3r//ff1zTffWMNHefn6+qp9+/YaOnSo7rzzTufegK4uh7h8+XItXbpUJ0+etNsnMDBQvXr10ujRo10+fz/++KPeffddu8+cr6+vevbsqUmTJiksLMylcQEAAACgIij9f1IIAAAAAADKlS+//FJ9+/bVzz//bDeAJF2dIWn+/Pm6//77ZTab3Vxh/jIzMzVhwgQ9//zzdgNIkpSSkqJ///vfevzxx5WamipJWrRokR599FG7ASTpatjk22+/1cCBA116v/v27VPv3r31/fff2z2XOTk52rFjh4YNG6YJEybkGzjJa/v27erRo4cWLFiQbwBJkhISErR48WJ1795df/75p9N1X/Pqq6/aBJCkqwGGEydOuDxebtnZ2frggw/Up08frVq1Kt8A0rWf9+677+rOO+8s1PsoCbGxsRo8eLAmTpyYbwBJkrKysvTTTz9pwIABWrJkicMxLRaLZsyYoQceeEBr1651eD/ExsZqxowZuvvuu3Xo0KFCv4+SYLFYNHLkSM2dO9duAEm6em8uWrRIffv2dbr+nTt3qk+fPpo5c2a+AaRrP/+nn35S37599eabbyo7O9ul+q89t59++qndAJIkpaWladWqVbrnnnu0a9cul8b3tF27dql3795atmxZvgEk6WqYaNOmTXr66ac1evRoWSyWAsf+66+/1Lt3b02bNi3fAJJ09XN4xYoVuuuuu/Tdd985VbfFYtH48eP19NNP5/vMZWRk6JtvvlHv3r0dPpcAAAAAUFExExIAAAAAAHCbX375RUuWLFFWVpYkKSgoSC1btlRISIguXLig3bt3G4IRhw8f1oQJE/Svf/3LUyUbTJ06VatXr7a2GzZsqAYNGig7O1u7d+/WpUuXrPu2bNmixYsXKyQkRPPmzbNub9y4sRo2bKjU1FTt2bPH8CV9bGysXn/9dc2fP7/AWhITE/X4449bj/fy8lLLli0VGRmphIQE7dy5U+np6db+q1evVmpqqhYsWOBw6bFffvlFY8aMMRwrSVFRUWrcuLF8fX0VGxur/fv3KycnR9LVwMfw4cP1z3/+0+kZTdavX6+vvvoq3/333XefU+PkZ9q0afrkk08M20wmk5o1a6Y6deooIyNDR48e1enTp6374+PjNXz4cM2aNUu9evUq0s8vitOnT2vw4ME2AbCgoCC1atVKISEhunTpknbt2mW9TpmZmXrjjTfk5+enhx56yGbMrKwsjR07VuvXrzds9/b2VosWLRQZGakrV67o4MGDunDhgqGWBx98UB988IE6depUAu/Wda+//ro2bNhgbYeHh6tFixaSpAMHDujcuXPWfadOndJjjz2mzz77TPXr1893zK1bt+rxxx+3ue9r1KihZs2aqXLlyjp37pz27t1r/fzKycnR4sWLdfLkSS1YsMCppQljY2M1YsQIXbx4UdLVmXVatGihiIgIJSUlaf/+/YbPhKSkJI0cOVLr1q1zaUYnT4mLi9OIESMM78HX11fNmzdXzZo1ZTKZdPbsWR09elRXrlyx9vnhhx80ffp0/eMf/8h37N27d2v48OFKTEw0bA8PD1fz5s3l7++v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2LCtZ8+exVWWUxo1amRYfm3fvn3atGlTgcelp6frq6++srYrV65sDW74+/urR48ehr7vvfeeU/XExsZqxYoVhm32zklhnsNTp07pl19+caqOvFavXu1UwOXrr782LK/VtWtXhYSEGPr07t3bMJPT8uXLdfbsWafqePfdd5WRkWFt33zzzQoKCnLqWE+pXr26ob1jx44CZ/7JzMzU8uXLCxw7IyND+/bts848lDsA5kjemYryLrXXu3dvQ/vzzz+3WWYvP59++qkuXryoK1eu6PDhwzp79qzN7GZ9+vQxtBcuXOjUbEgffvihUzUAAAAAQEVCCAkAAAAAAJRZzZo1M8zy8ueff2r37t359s/IyNBrr72mixcvuqO8Erd27Vp98sknDvu8+eabhnPSsGFD3XbbbTb9unbtqiZNmljbcXFxGjdunMOljCRp/fr1NjU89thjBRdfQh5++GHDPfHDDz/ogw8+cHiMxWLR+PHjDeGTevXqqXv37iVWZ37ynruXXnqpwMDNnDlzDLX36dPHEIZ5/PHHDf3//e9/FzibTGJiosaOHWtYZq9z585q3bq1Td+827777jvFxsbmO3ZKSoomT57s9FJgeSUnJ2v8+PEOl307ePCg3njjDcO2ESNG2PRr1KiR4XlISkrS2LFjdfnyZYc1fPXVV/r4448N24YNG+ZE9Z4VERGh8PBwa/vEiRP673//m2//nJwczZkzR4cPHy5w7LvuussQ6HrvvfcMITB7srKybM5j3pmPmjZtaliyLTU1VU8//bQuXbrkcOzdu3dr3rx5hm32Ppvuvvtu1atXz9revHlzgeHFf/3rX/r1118d9gEAAACAiogQEgAAAAAAKLMCAwN10003Wds5OTl68skn7X45vH37dg0dOlTfffedJHlspp7iNmXKFL355ps2S2ydP39e48aN05IlS6zbfHx8NHPmTENQ4BqTyaTp06cbAjwbN27UAw88oN9//91mZpCUlBQtWrRIY8aMMSy91rNnT3Xu3Lm43p7LIiIiNH78eMO2OXPmaPz48Tpz5oxN/507d2rw4MGGWXm8vb01ZcoU65Jm7tSnTx/D+Tt16pQefPBB/fjjjzZL3F28eFGTJ082XOOQkBCNHj3a0K9ly5YaOnSotZ2Tk6MJEyZo+vTpMpvNhr45OTn69ddf9cADD2jPnj3W7ZUrV9brr79ut+b69esbAmypqamKjo62WcIr99jXlrwq7HO4efNmPfzwwzZLEmZmZmrlypV65JFHDM/EwIED1aZNG7tjvfTSSwoODra2d+3apfvvv1+//vqrzX1vNps1ffp0vfjii4Z9AwYMsFnqrbTKG6578cUXtXr1apv769ChQ3rqqaesM4QVdK3q169vGDshIUGDBw+2e+9K0unTpzVq1Cht3brVuq1x48a6+eabbfq+8sorhmt06NAhDRw4UN9//72ysrIMfS0Wi5YvX65HH33UEHRr06aNzaxH0tVl+l555RXD5+KiRYs0YcIEm8BqYmKipk6dqlmzZjk6FQAAAABQYbn//0kBAAAAAAAoRqNHj9avv/5q/ZLbbDbriSeeUN26ddWoUSNlZ2fr77//1smTJ63H9OjRQ4mJiU4tdVVatW/fXocOHVJKSooWL16sTz/9VK1atVK1atUUFxen3bt3G76cN5lMmjx5cr5BDOnql/SvvfaaXn31Vev5PHLkiIYNG6YaNWqoefPmCgoK0sWLF7V3716bWZKaNm2q6dOnl8wbdsFjjz2mAwcOGJYo++abb/Ttt9+qefPmqlOnjjIyMnTs2DHDfSFdDVq8/vrruvHGG91c9f///NmzZ+uhhx6yziZ05swZPf3009ZrEBgYqHPnzmnv3r2G5cB8fX311ltv2SyPJkkTJ07UkSNHtHHjRklXA0FLly7VJ598olatWikiIkJpaWk6ePCgzcxLfn5+mjdvnho1apRv3ePGjdPTTz9tbZ84cUKDBg1SkyZNVLduXaWnp+vo0aM6d+6ctc+jjz6qn3/+2eYaFCQoKEjJycnau3ev+vXrp6ZNm6p+/fpKS0vT3r17bYJV7dq108svv5zveFFRUZo9e7ZGjx6t9PR0SdLx48f1xBNPKDw8XM2aNVNAQIDi4uK0Z88eZWZmGo7v0qVLvgGt0ujJJ5/UqlWrrDNJpaWlacKECZozZ44aN24sPz8/nTx5UkePHrUe065dO9WuXVvffvutw7Fffvllbd261XoNzp8/r6efflrVqlXT9ddfr+DgYGVkZOjkyZM6fPiwIchVpUoVzZ49227Yyd41OnPmjJ599lmFhISoZcuWCg4OVmJiovbs2WMzk1VERITefvvtfINUt9xyi8aNG2eYOWn16tX6/vvv1bp1a4WHh8tsNmvnzp2yWCySrt6HTZo00Y4dOxyeEwAAAACoSAghAQAAAACAMq1ly5aaMWOGJk+ebAjdnDx50m64oXv37po9e7aefPJJd5ZZ7Bo2bKinnnpKY8aMUWpqqtLS0rRlyxa7fStVqqQpU6aob9++BY57//33KywsTBMnTlRSUpJ1+4ULF3ThwoV8j7vppps0b948wzJgnjRz5kzVqVNH7777rjVQlZOTo/3799vMnnNNWFiYpk2bpm7durmzVBsRERH64osvNGrUKO3atcu63dE1CAkJ0axZs3Trrbfa3e/r66sPP/xQU6dO1eeff27dnpWVZTNjUW5RUVF666231K5dO4c133nnnXruuec0d+5cw/YjR47oyJEjNv0feughvfjii/r5558djmvP1KlT9c4771hDMocPH853ubC77rpLb7zxhgICAhyO2bVrVy1dulSjR49WXFycdXtcXJyhnZvJZNKQIUP04osvGmYQK+0iIiL03nvv6amnnjIsaXfu3DlDSOyaDh066J133tHs2bOdGnvJkiUaMWKEYYlAs9ms33//Pd/jatasqTlz5qh58+b59snvGiUkJDgcu0WLFnrnnXcUGRnpsPaRI0cqICBAb731ljXcl5mZqe3bt9v09ff319y5c7VmzRpCSAAAAACQCyEkAAAAAIDnBNWUnrMfBkAhBNX0dAUe07dvX7Vo0UJz5szRb7/9ZjNTiSQ1aNBAI0aMUP/+/T1QYcm49dZbtXLlSv3jH/+wO6uTr6+v7rjjDo0fP15RUVFOj9utWzf9+OOPWrx4sVatWuUwfNSmTRsNHTpUvXv3LtR7KCkmk0mjR49Wr169tHDhQv3888+GwEVuERERGjhwoB599FFVrVrVzZXaV716dS1fvlxff/21PvroI8OsNLn5+/urX79+euqppxQREeFwTF9fX02ZMkUDBgzQO++8oz/++MMwk1Ju9erV00MPPaSHHnpI/v7+TtX85JNPqlOnTpo7d662bt1qs5SZdDUQMmbMGN12221OjWlPWFiY/vOf/+jtt9/W559/bjMj17WfM2rUKN15551Oj9u2bVutXbtWy5Yt02effWYI0eTm5+en22+/XSNGjFDLli0L/T48qUuXLvr+++81b948rV271jq7UG6RkZEaOnSoHnvsMZeWzWvatKm+/fZbffjhh/ryyy9tZtbKrXbt2rrvvvs0YsQIVa5cucCx27Zt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1a9+FatXr44tttgiLrzwwkKXBwAVoboqEcMHblboMgAAAAAAAKggJRdCampqissuuyz++Mc/Jm+bNWtWxiGk5557LpYvXx6JRCLa29vjoYceioceeiiOOuqouOSSS2LzzTfPdekV4e67746vfe1rKbfttddecdlll8X2229foKoAoMK0tUY0N3a8rnZYRFV1fusBAAAAAACg7JVUCOmFF16IM888M+bPnx/t7e0REZFIJOKxxx7L+Fj/+Mc/kj+vCyJFRPz+97+Pp556Kn72s5/FNttsk5O6K0lj48ZfeL744otxyy23xDnnnGM6NoBuam1rj4XLVna6fmj/mqiuSuSxIopac2PE1F07Xnfe7IgBI/NbDwAAAAAAAGWvZEJIr7zySpx88smxdOnSiFgbHIpYO/3XnDlzorm5OWpra7t8vEQiEYMHD4633357o+O9/vrr8bnPfS5uvfXWGDnSl3SZ2HvvveP666+P/v37x2uvvRa//OUv48knn4xf/vKXMWvWrLjhhhti8ODBhS4ToOQsXLYy9p8yo9P1MyePN/0WAAAAAAAAUDBVhS6gK5YtWxZf+MIXYunSpZFIJJIjF7W3t8fBBx8cU6dOjc02y+yL1y984Qvx97//PW677bY44ogjorp67bQk647f2NgYp512WrS0tPTEXSpbe++9d3zwgx+MMWPGxFFHHRW//OUv49Of/nRErB0R6fLLLy9whQAAAAAAAAAA5FpJjIQ0derUePPNN1NGKxo7dmxccsklseuunUw10kV77rln7LnnnvHCCy/EN77xjZg9e3byPK+++mr85Cc/ia9+9atZ34dKVVVVFRdffHH83//9XzQ2NsYf//jH+Pa3v51xaAyA4pFuajjTwvWMof1rYubk8Z2uAwAAAAAAgEIr+hDSq6++GnfccUdy9KNEIhETJ06MCy+8MDl6US7svPPOcfvtt8eXv/zleOCBB5Lna2hoiJNOOimGDh2as3NVmj59+sRBBx0Ud9xxR6xevTpeffXV2G233QpdFgDdlG5qONPC9YzqqoTHFQAAAAAAgKJW9NOxTZ8+Pdra2iJi7VRpRxxxRFxyySU5DSCt06dPn/jJT36SMrpSa2tr3H777Tk/VzlYunRpPPfcczFjRsdfRK9viy22SP68evXqHqwKAMpQW2vE0nkd/9fWWujqAIpaa1t7zH/n3Q7/a21rL3R5AAAAAABlo+hHQrr77ruToxINGjQovvWtb/Xo+Xr37h0/+MEP4qijjoq2trZob2+Pu+++O7785S/36HlL0UUXXRT33ntvREQ89NBDaUeLmjt3bvLnYcOG9XhtAHRduunVIkyxVhSaGyOmdjIF7XmzIwaMzG89ACXECH4AAAAAAPlR1CGkefPmxaJFiyKRSEQikYhPf/rT0b9//x4/7/bbbx8f+chH4s9//nNERPznP/+Jt956K4YMGdLj5y4le++9dzKEdOedd8YZZ5zR4XaLFi2KBx54ICIitttuOyEkgP9fuvBPPoM/6b6cjfAFLeSa4B8AAAAAAFCOijqENHv27IiIaG9vj0QiER/+8Ifzdu4jjzwyGUKKiHj22Wdj/PjxeTt/KfjEJz4R06ZNi+bm5rj22mvjkEMOiZ133jllm+XLl8e5554bK1asiIiI0047rRClAhSlnhyZoVgCTsDGBP8AAAAAAIByVNQhpMWLFyd/TiQSseuunUxD0gPGjRuXPG9ExNtvv523c5eKLbfcMi688MKYPHlyLF++PI4//vg4+eST4/3vf3/0798/nnvuubjxxhuTU7F9/OMfj6OPPrqwRQNUCFPPAAAAAAAAAPlU1CGkd955J/nz5ptvHr165a/cLbbYIvr06ROrV6/eqBb+69hjj42VK1fG9773vWhpaYnrrrsurrvuuo22O/HEE+PCCy9MhroAAAAAAAAAACgfRR1CqqqqKuj5+/XrF0uWLIlEIhFtbW0FraWtrS2OPvromDNnTowcOTJmzOh8Co90lixZEnfeeWc89NBD8dJLL8U777wTtbW1MWzYsBg7dmwce+yxMWbMmIyOOXHixPjgBz8YN998c/z973+PN998MyIihg4dGvvss0+ceOKJsccee3SrXgAAAAAAAAAAil9Rh5D69++f/Hn58uXR3t6e15F0mpubk+erra3N23k7cu2118acOXOyOsb06dNjypQpsXz58pTbm5qaoqmpKf71r3/FbbfdFh/+8Ifju9/9bgwaNKjLx956663joosuyqo+AAAAAAAAAABKU2GHGtqE4cOHJ39ub2+PV199NW/nfv3112PNmjXJ5S222CJv597Qgw8+GNOmTcvqGD/+8Y/joosu2iiA1JH77rsvjjnmmFiwYEFW5wQAAAAAAAAAoDIUdQhpl112iYhIjkb0xBNP5O3cjz32WESsDT9FRGy33XZ5O/f6Zs6cGeecc05KICpTd911V1xzzTUpt330ox+Nq666Ku6+++645ZZb4otf/GIMHDgwuX7+/Plx1llnRUtLS7fPCwAAAAAAAABAZSjq6diGDBkSo0ePjrlz50ZExG9/+9s4/vjj83Lu3/72t8mfe/XqFTvssENezru+O++8M7797W/HqlWrun2MxYsXx2WXXZZcrqqqih/+8Ifx8Y9/PGW7ffbZJz796U/H6aefHi+99FJERDzzzDNx0003xec///lunx8AKsXQ/jUxc/L4TtcBkDutbe2xcNnKDtcN7V8T1VX5m8YbAAAAAIC1ijqEFBHxkY98JH7xi19ERMSTTz4Zjz32WOy77749es5HH300nnjiieQITO9///ujV6/8PVSrVq2KSy+9NKZPn571sa677rpYtmxZcvnss8/eKIC0zsiRI+PnP/95HHvssdHU1BQREddee22ccMIJUVtbm3UtAFDOqqsSMXzgZoUuA6AiLFy2MvafMqPDdTMnj9ePAQAAAAAKoKinY4uIOO644yKRSEQikYj29vb45je/Gc3NzT12vhUrVsS3vvWt5PkiIo444ogeO9+GHnjggTj66KM3CiBVV1dnfKyWlpa48847k8uDBw/e5KhGI0aMiDPOOCO5vGTJkvjDH/6Q8bkBoOK0tUYsndfxf22tha4OAAAAAAAAelTRj4S03XbbxaGHHhp//etfI5FIxGuvvRZf/vKX4+qrr46+ffvm9FwtLS1x3nnnxWuvvZYcBWnYsGFx5JFH5vQ8HZk7d25cfPHFMXPmzJTb+/TpE5deemlMmzYt5s2bl9ExZ86cGUuWLEkuH3HEEdGnT59N7nfMMcfEFVdcEWvWrImIiHvvvTcmTJiQ0blz5c0334w333yzW/vOmTMnx9UAUGyKagq05saIqbt2vO682REDRua3HgCAEmB6RQAAAIDyUfQhpIiIr33ta/Hwww/HypUro729PWbOnBkTJ06M//3f/41Ro0bl5BxvvPFGnH/++fH0008nR0FKJBLxla98pUvBnWz985//3CiAtNNOO8WUKVNi9913j2nTpmV8zEceeSRl+cADD+zSfgMGDIgxY8bEE088ERER//jHP6K5ubkgU7LdeeedceWVV+b9vACUBlOgAQCUNtMrAgAAAJSPkgghjR49Os4999z43ve+lwwIPf/883HkkUfGZz7zmTjxxBNjq6226tax582bFzfddFP86le/Soac1k3/dsQRR8TRRx+d2zvTBf369YtTTz01TjvttKwCUM8//3zK8h577NHlfXffffdkCGnNmjXx3HPPxX777dftWoD8c0UxFaGtde0IRB2pHRZRlfl0pgAAXZHu9XaE19wAAAAAVJ6SCCFFRJx88snx6quvxu23354MIq1atSquv/76aGhoiD322CMOOOCAGDNmTLz3ve+Nurq65JRq66xZsybmz58fL7/8cjz77LPx0EMPxXPPPRcREe3t7RERyWOPGzcuvvvd7+b1PtbU1MSxxx4bZ555ZgwZMiTr473yyivJnwcNGhRbbrlll/fdZpttNjqWEBKUFlcUUxFMgQYAeSHgvrF0r7cjvOYGAAAAoPKUTAgpIuKb3/xmVFdXx6233poMGLW3t0d7e3s888wz8cwzzyS3ra6ujgEDBkRNTU2sWbMmVq1aFcuWLUuGjdbtu876xzv00EPjRz/6UfTt2zdP9yxi3333jQceeCAGDRqUk+OtXLkyFi9enFwePnx4RvvX1dWlLM+bNy8ndWXquOOOi/33379b+86ZMye+853v5LgiAACAyiPgTjEw+hQAAABAcSupEFIikYiLL744dtttt5gyZUosW7YsZbSj9UNFa9asSQnhdHa89ffdfPPN4/zzz48JEybkvvhN6O50cp1ZtGhRyvLgwYMz2n/DUZOampqyrqk7RowYESNGjCjIuaHY+MAdAACoZEafAgAAAChuJRVCWufYY4+Ngw8+OH784x/H7373u2hpaYmI2Gj6tU1ZF1rq379/TJw4Merr62OLLbbIdbkFsXTp0pTl2trajPbffPPNU5aXLVuWdU1AdnzgTiUY2r8mZk4en3Y9AEBXmUYOAAAAAPKnJENIEWtH6rn00kvj3HPPjV//+tdx//33xzPPPBOtra1d2n/QoEGx7777xsc+9rEYP3589OnTp4crzq91wax1amoy+9J2w8djw+MBQE+orkoI0wEAOWMaOQAAAADIn5INIa2z5ZZbxmmnnRannXZaNDc3xwsvvBCvvvpqvPnmm7F8+fJ49913o7q6Ovr16xeDBw+OrbfeOrbffvvYbrvtCl16j1q9enXKcnV1dUb79+qV+tRYs2ZN1jUBwCa1tUY0N3a+vnZYRFVm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uP3222PatGkxaNCgAlUJUNp6dLQiV6ACAAAAAAAAWRJCIiuPPPJInH/++dHa2ho1NTUxceLEOPDAA6O2tjb+/e9/x6233hpPP/10PPbYY/GlL30pbr755qiu9kU2dIcpsypbj45WlOEVqOmei56HAAAAAAAAUJmEkOi29vb2+M53vpMMIN10003xvve9L7l+zJgxceSRR8b5558f99xzTzz++OPxm9/8Jo4//vgCVg2ly5RZFa6IRivyXAQAAMqJi34AAAAgN4SQ6LYnnngi/v3vf0dExGc/+9mUANI61dXV8a1vfStmzJgRK1asiN/97ndCSNBdRRRCoQAyHK2oR6V7LnoeAgAAJcaFFgAAAJAbQkh02+OPP578+cMf/nCn2/Xv3z923333eOyxx2LOnDn5KA3KUzGFUKhs6Z6LnocAAECpcdFP0TMtOAAAQGkQQqLbxowZE6effnosXLgwRo0alXbbtra2iIhYtWpVPkoDAAAAgK5x0U/RM1oVAABAaRBCotv222+/2G+//Ta53fLly+P555+PiIgRI0b0dFkAAAAAQDkxLTgAAEBJEEKix91yyy3x7rvvRkTEAQccUOBqAAAAAICSYlpwAACAklBV6AIoby+88EJcddVVERHRq1ev+MxnPlPgigAAAAAAAAAAyDUhJHrM/Pnz44wzzoiVK1dGRER9fX1ss802hS0KAAAAAAAAAICcMx0bPWLevHlRX18fb775ZkREjBs3Ls4555zCFgUVZmj/mpg5eXyn6wAAAAAAAAAgV4SQyLmXX345Tj311GhsbIyIiF122SWuuuqq6NXL0w3yqboqEcMHblboMgAAADrl4gkAAACA8iEVQk49+uijcfbZZ8fSpUsjImK33XaL66+/PgYOHFjgyqACtbVGNDd2vK52WERVdX7rAQAA2ICLJwAAAADKhxASOXPXXXfFRRddFKtXr46IiH333TeuvvrqqK2tLXBlULx69Krf5saIqbt2vO682REDRmZ3fAAAgGy5eAJSGB0MAACAUiaERE7ccMMN8f3vfz/a29sjIuLwww+PH/7wh9GnT58CVwbFzVW/AAAUgi+5KRounoAUPicAAACglAkhkbWbbroppkyZklz+7Gc/GxdccEFUVVUVsCooEa76BQCgAHzJ3THhLKAnZNRbfE4AAABACRNCIisPPfRQfO9730sun3vu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cNY15VJ9fX3U19en3WbWrFkxadKkPFUEAEDFKpJRPzINZ0ApyjhUVCT/PgEAAACgEgghlalBgwZF3759Y9WqVRERsWjRooz233D797znPTmrDQAAykoGo3705NRQRnyhIqQLFUVsHCwyKk+HTFMHAAAAQE8QQipTiUQiRo0aFS+//HJERMybNy/a29sjkUh0af+5c+emLG+33XY5rxEAACpNjwaFMg1nQClKFyqKqOhgUSaEFgEAAADoCUJIZWznnXdOhpBWrlwZc+fOjdGjR3dp35deeilleccdd8x5fQAAlciUWflXVI95T04NJZwBdJVp6gAAAADoAUJIZWyvvfaKe+65J7n8+OOPdzmE9MQTTyR/HjJkSGy99dY5rw8AoBIZfSL/iuoxNzUUUAz0IgAAAAB6gBBSGfvQhz6UsnzvvffGMcccs8n9nnrqqViwYEFy+cADD8x5bQAAFSvDKbPSjeJj1KQuMk0ZAAAAAAD0OCGkMjZq1KjYc88948knn4yIiAcffDD+9a9/xS677JJ2v2uuuSZl+bjjjuuxGgEAKk6GU2YV1Sg+pco0ZQAAAAAA0OOEkMpcfX19MoTU1tYWX/nKV+KOO+6IQYMGdbj99ddfH/fff39yeezYsTFu3Li81JqJhoaGaGhoSLtNS0tLnqoBAOhB6UbxKaMRfIz4BAAAAAAApU0Iqcwddthhsc8++8Q///nPiIh4/fXXY8KECTFlypTYe++9k9s1NzfHT3/607j++uuTt1VXV8fkyZPzXnNXNDc3p0wZBwBQttKN4lNGI/gY8QkAAAAAAEqbEFKZSyQSccUVV8TEiRNj/vz5EbE2iDRx4sTYYYcdYtttt43m5uZ4+umnY8WKFSn7nnvuuTF27NgCVL1ptbW1UVdXl3ablpaWaGpqylNFAABkpUJGfAIoNelGqlu3HgAAAAAihJAqwogRI+LGG2+MU089NebOnZu8/eWXX46XX355o+0TiUScffbZ8YUvfCGfZWakvr4+6uvr024za9asmDRpUp4qAgAgKxUy4hNUAtMrlhcj1QEAAADQVUJIFWLrrbeOe+65J6655pq44447YvHixR1uN27cuDj33HNj3Lhxea4QAKB0+cKdnuK5RSkSWikz6UaqizBaHQAAAABJQkglYsaMGVkfo6amJs4555w4++yz48knn4zXXnstFi9eHL16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6c9AviXa29vbC10EAAAAAAAAAABQukzHBgAAAAAAAAAAZEUICQAAAAAAAAAAyIoQEgAAAAAAAAAAkBUhJAAAAAAAAAAAICtCSAAAAAAAAAAAQFaEkAAAAAAAAAAAgKwIIQEAAAAAAAAAAFkRQgIAAAAAAAAAALLSq9AFQDl7/vnn449//GM88cQTMXfu3Fi6dGlUV1fHFltsEdtvv328//3vj09+8pMxdOjQjI/973//O6ZPnx6PPfZYzJ07N5YvXx5bbrllDB8+PA488MA4+uijY6uttsrp/fnTn/4U55xzTkRETJkyJY499thuH2vBggVx7733xowZM+I///lPvPXWW1FVVRXvec97YsyYMXH44YfHoYceGlVV+ctKtrS0xJ///Of461//Gs8991wsXrw4qqurY9iwYbHjjjvGUUcdFR/60Ieid+/eOTtnW1tbHH300TFnzpwYOXJkzJgxI2fHBjqnP3euEvtzTz4foBzpoZ2rxB761FNPxe9+97t4/PHHo7GxMZYvXx61tbWxzTbbxH777RdHH310bLvttjm+V0BH9OfOVWJ/7szy5cvjk5/8ZMydOzciIs4666w4++yzc3oOqAR6bucqqef+z//8T9x9993dqunDH/5wXHXVVd3aF+ic/ty5SurP63vhhRfiz3/+czzyyCPR2NgYixcvjn79+sWwYcNi7733jmOOOSbGjBmTw3sFJNrb29sLXQSUm//85z9x8cUXxyOPPLLJbfv06ROf+cxn4txzz40+ffpscvtVq1bFD3/4w7j55psj3T/fqqqqOP300+Oss86KXr2yzxsuXrw4PvnJT8bChQsjovsvdlpaWuLaa6+Nn/3sZ7Fq1aq02+64447xwx/+MHbeeedu1ZyJJ554Ii644IJ4/fXX0263ww47xI9+9KOc1fSzn/0spk6dGhEhhAR5oD93rhL7c08+H6Ac6aGdq8Qe2tjYGBdeeGE8/PDDabdLJBJxwgknxPnnnx/9+vXr8vGBrtOfO1eJ/XlTLrzwwvj1r3+dXBZCgszouZ2rxJ77iU98Il588cVu1SWEBLmlP3euEvtzRMSiRYvi+9//fpfCooceemhcdtllMWjQoIzOAXTMdGyQY7NmzYqjjz66Sy90Itb+8b/++uvj5JNPjmXLlqXdduXKlfHFL34xbrrpprQvdCLWjrBz9dVXx+mnnx5r1qzpcv2d1XjOOeckX+h014oVK+LUU0+NadOmbfKFTkTESy+9FBMmTIhZs2Zldd5NeeCBB+Kzn/3sJl/oRES8/PLLcfzxx3f595vOgw8+GNOmTcv6OEDX6M+dq8T+3JPPByhHemjnKrGHvvzyy3HMMcdsMoAUEdHe3h633XZbHH300Vk/1sDG9OfOVWJ/3pT77rsvJYAEZEbP7Vwl9tzVq1fHv//972xLBHJAf+5cJfbniLWjVh1zzDFdHq3ub3/7W0yYMCEWLVrU5XMAnTMSEuTQ66+/Hscff3y88847ydtqa2vj05/+dHzgAx+IYcOGRUtLS7z66qvxxz/+Me6///6UFy0HHHBA/PznP4/q6uoOj/+Nb3wj7rzzzuRy3759Y+LEiXHwwQfHlltuGY2NjfGnP/0pfve730Vra2tyu5NOOikuuuiibt2ndS907rvvvpTbM01cr1mzJurr6+Oxxx5L3tarV6845phj4uCDD45Ro0bFsmXL4pFHHombb745li5dmtxuiy22iD/+8Y8xePDgbt2HdF555ZX41Kc+FStWrEjeNmbMmJg4cWK8973vjTVr1sQzzzwTN998c7z22mspNU2fPj1Gjx7drfPOnDkzzjzzzJTzGgkJeo7+3LlK7M89/XyAcqOHdq4Se+g777wTn/jEJ2LBggXJ2wYNGhSTJk2K/fffPwYNGhSLFy+ORx55JH75y1/GkiVLktu9733vi1tuucWIcpAj+nPnKrE/b8rbb78dRx55ZCxevDjldiMhQdfouZ2r1J77wgsvxCc/+cnk8le/+tU4/PDDu1xfv379YsiQIV2/Q0CH9OfOVWp/fvPNN2PChAkpAa6BAwfGSSedFHvttVcMHTo0Ghsb489//nP89re/Tfm9jRs3Lm655ZZIJBK5u8NQgYSQIIdOP/30eOCBB5LLY8eOjSuvvLLTNxMPPvhgnHPOOSl/aC+77LI4/vjjN9r2kUceifr6+uTy4MGD44Ybboiddtppo20fffTROPPMM2P58uXJ26ZPn57xnKaLFi2Kc889N+UFyjqZvtiZNm1a/PSnP00ub7XVVnHNNdfEjjvuuNG2CxYsiM9//vMpQ9l++tOfjksvvTSj+rvixBNPjCeeeCK5fNJJJ8XkyZM3esG5cuXK+PrXvx5//vOfk7cddNBB8fOf/zzjc955553x7W9/e6PUuRAS9Bz9uXOV2J978vkA5UgP7Vwl9tANp/HZY4894mc/+1mHH0wuWLAgTjnllHj55ZeTt33lK1+JM888s1v3C0ilP3euEvvzpnzxi1+M+++/f6PbhZCga/TczlVqz/3d734X559/fnL5jjvuiLFjx+ameKDL9OfOVWp/Pumkk1IevwMOOCB+/OMfx4ABAzbadtasWfHFL34xZUSsH/7wh/GJT3wi4/sF/Jfp2CBH/vWvf6W80Bk+fHj87Gc/S3s1w0EHHRTf//73U267+uqrO9x26tSpyZ8TiURMmzatwxc6ERH77bdfyvYREf/7v/+7iXuQat3wlR290MlUY2NjXHfddcnlLbbYIm644YYOX+hERNTV1cVVV10VvXv3Tt529913R3Nzc9a1rO/BBx9MeaHzwQ9+MC688MIOE+81NTXxgx/8IPbaa69O99+UVatWxUUXXRTf+MY3ujTsJZAb+nPnKrE/9/TzAcqNHtq5SuyhCxcujN/97nfJ5f79+8fVV1/d6ZWRdXV1ceWVV6bc51tvvTXlKkOge/TnzlVif96UO+64o8MAEtA1em7nKrnnzpkzJ/lzIpGIHXbYIQeVA5nQnztXqf35z3/+c8rjt+eee8bVV1/dYQApYu3IR5dccknKbbfffnuX7w/QMSEkyJE//elPKctf/OIXY4stttjkfocffnjsueeeyeV58+bFCy+8kLLNs88+G88++2xy+ZBDDolx48alPe7BBx8chx56aHL573//e5fmqF68eHFceuml8dnPfjbeeuut5O3ZTDlzyy23pIRuLrzwwhg1alTafUaNGhUf+9jHksvvvvtuTl54re+Xv/xlyvL//M//pB1isU+fPvHNb34z5bZbb721S+d64IEH4uijj47p06en3G4qH+h5+nPnKrE/9+TzAcqRHtq5Suyhf/zjH2P16tXJ5UmTJm1yColtt902DjjggOTyokWL9E/IAf25c5XYn9N54403Ur5oO/jggzM+BlQ6Pbdzldxz1w8hjRgxImpra7tRKZAN/blzldqfr7/++uTPffv2jSuuuGKTU8J/4hOfiBEjRiSXH3/88ZyHr6DSCCFBjmz4h/iwww7r8r4f+tCHUpY3fLGz/lCDEdHl4RY3HD7y3nvvTbv9TTfdFIcddljccsstsWbNmuTt48aNi69+9atdOueG2tvb46677kou77TTTl0exvDQQw+NmpqaGD58eOy6664pw1hmq7m5OR5++OHk8nvf+97YddddN7nfzjvvHLvvvnty+f7774+WlpZOt587d2587nOfi9NPPz1effXV5O19+vSJyy+/PIYNG9bNewB0lf7csUrtzz35fIBypId2rFJ76FNPPZWyvP6Hk+lseFX4f/7zny7tB3ROf+5YpfbnzrS2tsb555+fnG5k7733js997nNdLxyICD23M5Xec9cPIXU2MgrQs/TnjlVqf37llVfi6aefTi5/6lOfitGjR2/y+IlEIsaPHx+1tbUxatSo2GOPPaKxsXGT+wGdE0KCHFk/zTx48ODYcsstu7zvhtMXvP322ynLjzzySPLn6urq2H///bt03P322y969eqVXL7vvvvSbn/DDTekzHvaq1evOP3006OhoSEGDRrUpXNu6Nlnn01Jbh933HFpU83rO/zww+Ppp5+OBx54IH7729/mdA7Wf/zjHykv6A488MAu77v+ldzLly+PmTNndrrtP//5z43W77TTTnHbbbfF0Ucf3fWCgW7TnztWqf25J58PUI700I5Vag/93//937j//vvjZz/7WfzP//xPl79sWblyZcpyVx8roHP6c8cqtT935pprroknn3wyIiL69esXl19+eVRV+TgYMqXndqySe25TU1PKfe9seiOgZ+nPHavU/rzh9MMbBsLSufjii+Pxxx+Pv/3tbzF9+nRTbEKWem16E6Arfv/738eCBQti4cKF8e6772a07/ovBiLWfjC0zurVq+PFF19MLm+33XZdHtq1pqYmdthhh2SC+1//+le0tLRscujBiLXzpF588cWx2267delcnZk1a1bK8kEHHZTV8XLl+eefT1neY489urzvhts+/fTTXbpf/fr1i1NPPTVOO+20Lv0OgNzQnztWqf25p54PUK700I5Vag+NWDvVxIgRIzKazmf9KxEj1v6+gezozx2r5P68oWeffTauvvrq5PIFF1wQo0aNijfffLPL5wbW0nM7Vsk9d8MRU4SQoDD0545Van9e/34PGTIkdtlll25UCeSCEBLkSF1dXdTV1XVr37///e8py+vPPfr666+nJIMz/cB+m222Sb7YWb16dbz++utp3xTtvPPOceaZZ8bhhx+e0Xk689xzzyV/3nzzzWObbbbJyXGz9corr6Qsb7/99l3ed8P78PLLL6fdvqamJo499tg488wzY8iQIV0+D5Ab+nPHKrU/99TzAcqVHtqxSu2h3fHggw/GM888k1zebrvtXFEIOaA/d0x/XmvlypVx/vnnx+rVqyNi7RdPEyZM6PI5gVR6bscqueeuPxVbxMbTsTU3N8fSpUtjwIABXQ4uAJnTnztWqf15/fu9/vRtQP4JIUGBPfvss/HEE08kl/v06RPjxo1LLs+bNy9l++HDh2d0/A1fgL355pudvtiZNm1azv8wv/baa8mfR40alTLk4+OPPx6/+93v4qmnnor58+fHmjVrYsiQIbHnnnvGEUcc0aPp7A2v/Mvkce3oMe3MvvvuGw888EC3h80ECkd/Lu/+nKlNPR+AVHqoHhqx9qrUb37zmym3nXvuuVkfF+g+/bky+vMVV1wRr776akREbLHFFnHZZZd1+XxA7ui55dtz1w8hVVdXx3bbbRePP/54/PrXv45HHnkkGhsbk+s333zz+MAHPhBHHnlkHH744aYmhiKgP5dff25ubk4Z3WrUqFHJn1taWuKBBx6Ie+65J+bMmRMLFiyIPn36RF1dXXzwgx+Mo48+OnbeeedM7gqwCUJIUEBtbW0bfRB08MEHx+abb55c3nAe2g3nqd2UDefAbWpq6nTbnkgGr/9ibejQoRGxNu184YUXxpNPPrnR9q+//nq8/vrrcdddd8W4cePie9/7Xmy99dY5r2v9x7Vv374ZXZHSv3//6N27d/KKwnSP6VZbbdX9IoGC0Z/Lvz9noivPB+C/9NDK7KHLli2LhQsXRlNTUzz99NPx+9//fqNpKk4//fQ47LDDMjoukDv6c2X054ceeih++ctfJpe/+c1vJh8LIH/03PLuueuHkPr37x9nnHFGPPzwwx1uu3z58vjrX/8af/3rX2O33XaLH/zgBxmN/gHklv5cnv15w+DYuvv9wAMPxLe+9a2YP39+yvp333033nnnnXjxxRfjxhtvjGOOOSYuuuiilGn5gO6rKnQBUMmmTZsWTz31VHK5qqoqzj777JRtli5dmrKc6fCtG35BuuHxelJra2u88847yeV+/frF448/Hscff3yHL3Q2NGvWrJgwYUI8/fTTOa9t/bq6MyTu+o/rsmXLclITUDz05/QqrT935fkA/Jceml659tC77rorjjjiiJg0aVJcccUVKQGkLbfcMr7//e/Heeedl3FNQO7oz+mVQ39esmRJfOMb34j29vaIiDjyyCPjiCOOyPh8QPb03PRKuee2tramTCm0ZMmSTgNIG3r++edjwoQJ8eijj2ZcF5Ab+nN6pdqfFy9enLLcr1+/uPHGG+OLX/ziRgGkDbW1tcWdd94Zn/nMZzYKoAHdYyQkKJC77rorrr766pTbJk2atNH80S0tLSnLNTU1GZ2nT58+aY/Xk5YtW5b84CsiYtGiRXHGGWfE8uXLI2LtfK8TJkyIsWPHRr9+/aKxsTHuv//+mD59erLOpqam+OIXvxh33XVXt+f27cj6j0Omj2lERO/evTs8FlD69Gf9eX1dfT4Aa+mhldtD000PtPXWW0dbW1usXr065RxA/ujPldGfv/nNb8bChQsjYu3V35dccknG5wKyp+eWd8997bXXYuXKlRvdvtdee8WJJ54Ye+65Z9TV1cXy5cvjhRdeiHvuuSfuuuuuWLNmTUSsfezOPvvs+NWvfhXbbrttxvUB3ac/l29/3jCU9NBDD8X999+fXD7ggAPiqKOOih122CGqq6vj1VdfjXvuuSfuu+++5DbPP/98fOUrX4kbbrghevUSoYBs+BcEBfCnP/0pvvGNb6Tctscee8T555+/0bYb/iGtrq7O6Fwb/qFc92YnH1atWpWyPGvWrOTPp556apx33nkp9e24445x4IEHxmc+85k47bTTYu7cuRGxNsF84YUXxnXXXZez2tYN2RiR+WMakfpiJ5+PKdCz9Gf9eX2ZPB8APTSisntouisLn3zyyXjyySfj2muvjWnTpglyQp7pz5XRn++6667485//nFz+7ne/GwMHDsz4XEB29Nzy77nrT8W2bvvJkyfHpEmTUm7v06dP7L///rH//vvHhAkT4owzzohFixZFxNpRUS644IK44447Mq4P6B79ubz784b3e10AqW/fvvH9739/o9FBd9555zjiiCPivvvui69+9avx7rvvRkTEP//5z7j++uvjtNNOy7g+4L9MxwZ59pvf/Ca++tWvRmtra/K2urq6mDZt2kbp6Ii1Q0Gub/0Ec1e0tbWlLHfnD3t3rX8f1/eZz3wmzj///E6TxNttt1384he/SBla8aGHHsrp8I/rP64bPkZdsf59y+djCvQc/Vl/Xl+mzweodHqoHnriiSfGn/70p3j66afj8ccfj+nTp0d9fX3K1Y3//ve/46STTkqZvgLoWfpzZfTnN998My677LLk8gknnBAf+tCHMj4PkB09tzJ67uDBg+Ooo46KPffcM4YMGRIXXXTRRgGkDY0ZMyauvvrqlC/Qn3rqqXjggQcyrg/InP5c/v25s/t9xRVXpJ2e+MMf/nB873vfS7nt+uuvjxUrVmRcH/BfQkiQR7/4xS/iG9/4Rsofw8GDB0dDQ0OMGDGiw302fAG0flK4KzZMA+fzi9OOXli95z3via997Wub3HfrrbeOU045JeW2u+66K1elpTwO3Umhr/879GU0lD79WX9eX3eeD1DJ9FA9NCLi/e9/f2y33XZRU1MTtbW1MWbMmLjgggti+vTpMWzYsOR2S5YsiQsuuCDjD3GBzOnPldGf29ra4utf/3pyCorRo0fH17/+9W5WCnSXnlsZPTdi7eveH/zgB3H77bfHww8/HCeccEKXjjtmzJg47rjjUm77wx/+kHF9QGb058rozxsGxyIiDjnkkPjoRz+6yeMeccQR8f73vz+53NTUFA8++GDG9QH/ZTo2yIM1a9bEpZdeGrfffnvK7UOGDIkbb7wxtt9++073XT91HBHJIQG7asO07mabbZbR/tno27fvRrcdddRRXZ7r9VOf+lT85Cc/SS4/+uijKesvuOCC+O1vf9ulY40cOTJmzJiRXN58882Tj2Wmj2lE6uPanblrgeKgP/+X/pzd8wEqkR76X3po53baaae4+uqr4/jjj09+yPjMM8/E3//+9zjggANycg4glf78X5XQn6+//vp47LHHImLtly+XX3559OvXL+NzAN2j5/5XJfTcbB133HEpz5WZM2fm9PjAf+nP/1UJ/bmj+9fVkGjE2v78j3/8I7n86KOPxsc+9rGMawTWMhIS9LDm5uY4/fTTN3qhM2rUqLjttts2+YXmFltskbK8dOnSjM6/4fZbbrllRvtnY8CAARulj/fee+8u7z9s2LCoq6tLLr/xxhs5u2J6/ce1ubk5o6EfV69enfICafDgwTmpCcgv/Vl/Xl+2zweoNHqoHpqJXXfdNY466qiU2/7617/m7PjAf+nPldWf58yZE//v//2/5PLnP//52GuvvbIrFugyPbeyem4u7LbbbilTsr311lvR0tKS03MA+nMl9ucBAwZstE8m93vs2LEpy6+99lqX9wU2JoQEPeg///lPnHDCCfHwww+n3L7rrrvGbbfdFqNGjdrkMdafuiAiYtGiRRnV8Pbbb6csDxkyJKP9s1FVVbXRi6tMz7/+9mvWrMn4xV5n1n9cW1tbo6mpqcv7Ll68OOVF13ve856c1ATkj/6sP68vF88HqCR6qB7aHR/5yEdSlufMmZPT4wP6cyX257/85S8pX17//Oc/j/e+971p/zv55JNTjn/llVemrL/gggu6cxeh4ui5lddzc6G6ujoGDhyYctuSJUtyeg6odPpzZfbnDe9j3759o3///l0+/ob7Z1IbsDEhJOghL7zwQpxwwgnx0ksvpdx+wAEHxC233NLlP/pbb711yvJ//vOfjOqYO3duyvI222yT0f7ZGj16dMryypUrM9q/V6/UWSPXn/M1GxvWlcnjuuFjuu222+akJiA/9Oe19Oe1cvV8gEqhh66lh2Zuw9p8oAe5pT+vpT8D+aDnrqXnds+G9zOf0zRBudOf16rE/jxq1KiUEaBWr16dUd0b3udMRmkCNtZr05sAmXr22WfjlFNO2SgdfNxxx8V3vvOdjf6YpbPlllvG0KFDY+HChRERG7142pSXX345+XNdXd1GV1r0tJ133jmeeOKJ5PL8+fMz2n/9K0Gqq6tTksvf//734/vf/3636tpll11Sll988cV43/ve16V9X3zxxZTlnXbaqVs1APmnP/+X/pzb5wNUAj30vyqxh7a0tMSzzz4bc+fOjTfeeCPe8573xMSJE7tc24Yf4PXr16/L+wLp6c//VYn9GcgvPfe/KrHntrW1RWNjYyxatCgWL14cbW1tMX78+C7X1tLSkvLc6d27d0YjdQCd05//qxL7c58+fWK77bZLPvZtbW2xcOHCGD58eJeOv+GFUhtOyQdkxkhIkGMvvvhihy90zj777Pje977XrS8099prr+TPjY2NMW/evC7t99prr6UME7nPPvtkfO5sjRs3LmX50Ucf7fK+zc3N8cYbbySXt9lmm5Q5s7Ox/mMaESkvyDbl8ccfT1ne8D4CxUl/TlXp/bknng9QzvTQVJXYQ1etWhUTJ06Mr3/96/HTn/40rrvuuoxqW/8+R0QMHTo0o/2BjunPqSqtP5900knxl7/8JaP/fvCDH6Qcb8NjfO1rX+vGPYTKoOemqrSeGxGxdOnSOOSQQ+L444+P008/Pf7nf/4no9Eynn322ZSROXbfffcu7wt0Tn9OVYn9OSJi7733TlmeOXNml48/e/bslOUddtihy/sCGxNCghxasmRJnHbaaSkvdKqqquLb3/52nHXWWd0+7oc+9KGU5XvvvbdL+/3lL39JWT7wwAO7XUN3HXDAASkvUO6777549913u7Tv/fffn/Imbr/99stZXTvssEOMHDkyuTxjxoxoaWnZ5H4rV66M//u//0sub7XVVoZChxKgP2+skvtzTz0foFzpoRurxB7av3//2GqrrZLL8+bNiyeffLLLtf3tb39LWRbkh+zpzxurtP68xRZbxNZbb53Rf3V1dSnnGDhwYMr6wYMH5+AeQ/nRczdWaT03Ym3fHTZsWHJ5+fLl8Y9//KPLtf3ud79LWf7ABz7Q5X2BjunPG6vE/hwRccghh6Qs33PPPV2ubcaMGSnLubzfUImEkCCHLrzwwpRhDauqquLyyy+PE044IavjHnbYYVFTU5Ncvummm2LFihVp91m+fHncfPPNyeXa2to47LDDsqqjOwYOHBgf/vCHk8tLly6NK6+8cpP7rV69On7+85+n3HbkkUfmtLZPfOITyZ+XLFkSd9xxxyb3ue2221JezB577LE5rQnoGfrzxiq5P/fU8wHKlR66sUrtoYcffnjK8ob3pTMvvvhi3H333cnlqqqqgvzeoNzozxur1P4M9Dw9d2OV2nMPPfTQlOVf/OIXXarppZdeirvuuiu53KtXr5gwYUKX9gU6pz9vrFL784EHHpgy6vLf//73ePDBBzd5/Llz58bvf//75PKAAQM2CqEBmRFCghy5++67N7q697zzzoujjjoq62P3798/PvWpTyWX58+fH1//+tc7Heq1ra0tvva1ryXnq42ImDhxYvTr1y/rWrrjjDPOiKqq/7abG264If7617+m3eeyyy5LmeN1r7322mioxmxNnDgx+vbtm1z+wQ9+EE899VSn2z/xxBMxderU5PLmm28eJ554Yk5rAnJPf+5cJfbnnnw+QDnSQztXiT30hBNOSLmacsaMGTF9+vS09TQ2NsaXvvSlWLNmTfK2Y489NrbeeutN3RUgDf25c5XYn4Geped2rhJ77oQJE6K6ujq5/NBDD8Utt9yStp7GxsY466yzYtWqVSnH2XB0OiAz+nPnKrE/9+rVK0477bSU2y6++OJ45ZVXOj1+c3NznHvuubFy5cqUGgv1e4NyIYQEOdDe3h5XX311ym0777xzfOQjH4nXX3894/+WLFmy0TnOPPPM2GKLLZLLf/nLX+ILX/jCRvPQzps3L77whS/Efffdl7xt6NChG/3hzaedd945TjnllOTymjVr4stf/nL8+Mc/jqamppRtFyxYEF/+8pfj9ttvT97Wu3fvuPDCC3NeV11dXZx66qnJ5VWrVkV9fX385je/SZmbu7W1Ne6888449dRTU4aG/NKXvhRbbrllzusCckd/Tq/S+nM+ng9QTvTQ9Cqth0ZEjB49Or7whS+k3HbJJZfE1KlTo7m5OeX21tbWuPvuu+NTn/pUvPHGG8nbt9pqq/jqV7+a1X2ESqc/p1eJ/RnoOXpuepXYc3faaaeYOHFiym2XXnppXHbZZRvd59bW1vjDH/4Qxx9/fLz22mvJ20ePHu01MWRJf06vEvtzRMSJJ54Ye+65Z3J5wYIFMXHixLjzzjs3mvrtmWeeiUmTJsWzzz6bvG3EiBEF/b1BuUi0t7e3F7oIKHUPPvhgTv8onXXWWXH22WdvdPv//d//xZlnnhmrV69O3lZdXR1jxoyJoUOHxsKFC+Ppp59OSWL37t07brjhhhg3blxWNf3mN7+JyZMnJ5enTJmS0TDgra2tccEFF6QMaRgRUVNTEzvvvHPU1dXFwoUL45lnnkl5oRER8a1vfavHrvZbvXp1nHbaafHII4+k3D506NDYbbfdor29PWbPnp2SXo+IOOigg+JnP/tZJBKJrM4/fvz45AvWkSNHbjTvLJAd/XnTKqk/5+v5AOVCD920Suqh67S2tsY555wTf/nLX1Jur6mpiTFjxsTgwYNj2bJl8eyzz8Y777yTss2WW24Zt9xyS2y//fZZ3kOobPrzplVif+6qf/zjH3HyyScnl72mhfT03E2rxJ7b0tISp512WsycOTPl9t69eyd/Z8uWLYvnnntuo2DDiBEj4qabbopRo0ZldwehwunPm1aJ/TkiYvHixfG5z30u5syZk3L7oEGD4r3vfW8MGDAg/v3vf8dLL72Usr5fv35x0003xR577JHFvQMiInoVugAoBw899FBezvOhD30opk2bFl/96leTc8+2trbGk08+2eH2m2++efz4xz/O+oVOLlRXV8fll18e73nPe+KGG25IviBbuXJlp0Mt9u3bNy6++OI4/vjje6yu3r17x9VXXx1nnXVWyu9x4cKFG73AWeeQQw6J//f//l9OPvwDepb+vGmV1J/z9XyAcqGHblol9dB1qqur40c/+lFcccUVcfPNNydvX7lyZTz22GOd7rfHHnvET37ykxg+fHiG9wbYkP68aZXYn4GeoeduWiX23D59+sRVV10V3/zmN1O+3F+9enU8/vjjne73vve9L370ox8JIEEO6M+bVon9OWLtBVA333xznHfeefHwww8nb29qaopHH320w32GDRsW06ZNE0CCHDEdG+TA3Llz83au8ePHx5/+9Kc48sgjU+ZNXV/v3r3jyCOPjLvvvjsOOuigvNW2KVVVVfH1r3897rzzzjj44IOjd+/eHW7Xu3fvOOKII+Kuu+7q0Rc669TU1MR1110Xl19+eWyzzTadbrfNNtvEZZddFtdcc02njz1QXPTnrqmU/pzP5wOUAz20ayqlh66vT58+cdFFF8XNN98cBxxwQFRVdf7Rwnvf+964/PLL44477hBAghzRn7umEvszkHt6btdUYs/t169f/OD/Y+++o+wq6/bhX2cmvRdSIfRIh9CNgkAEBRSQJopiQYoIiKg8j/kBFgQRLEhTQHoVkV4eEQGpQXqvidQkJIRMwqRMysx+/8ibYyYkIclMzknI57PWWex7731/93eHrFmTyZX7/s1vcsEFF2SbbbZZ5F+Mb7DBBvnlL3+Za6+9VgAJWomvz4tnZfz6nCTdu3fPRRddlD/84Q/ZeOONF3nfIYcckltvvTWbbbbZkrwCsAi2Y4MV2NSpU/PYY49l7NixmTx5cjp16pTVV189m2++ebp3717t9j5SfX19Hn/88YwbNy51dXXp2LFj1lxzzWyxxRbp1q1b1fp67bXX8uKLL2bChAlpbGxM7969s9FGG2W99dbzLw+BxeLr87Lh6zOsHHwNXTaW5dfQSZMm5Yknnsi7776b+vr6dOnSJb17984WW2yRfv36tdIbANXm6/Oy4XtcYEF8zV02luXX3Lq6ujz55JPNvifu06dPNtxwQ8Ej+Bjx9XnZWNbfE48ePTrPPvts3nvvvUydOjXdunXLJz7xiWy22WZp165dK7wBMK/lLoQ0ffr0jB49OhMnTsz06dMzY8aMtG3bNp06dUrnzp0zYMCA9O7du9ptAgAAAAAAAAAA/7821Xz4zJkz88gjj+TJJ5/Mc889lxdffDGTJk36yHmdOnXKGmuskU033TTbbLNNtt566/Tp02fZNwwAAAAAAAAAAHxIxVdCamxszN13352bb745Dz/8cBoaGsrXlrSVeZdf23jjjbPHHntkt912E0gCAAAAAAAAAIAKqlgIaeLEibnsssty/fXX5/3330/SPHS0tPs5zq0xd35NTU123nnnfPOb38wWW2zRwq4BAAAAAAAAAICPssxDSBMmTMiFF16Ya6+9Ng0NDR8KDS3s8aVSKZ06dUqXLl3S2NiY6dOnp6GhIY2NjQu8d95ac8ebbLJJjj766Gy//fat/l4AAAAAAAAAAMAcyyyENGvWrFx44YW54IILyuGj+cNCbdq0yfrrr5/BgwfnE5/4RAYPHpy11lor3bt3T+fOnRe4OtKECRMyduzYvP3223n55Zfz4osv5rnnnsvkyZPnvNACAklbbLFFjjvuuAwZMmRZvCoAAAAAAAAAAKzUlkkI6b777sspp5ySt99+uxw+mvuY1VdfPTvssEM+/elPZ5tttkmnTp1a/LyiKPLcc89lxIgRueuuu/L8888nSfm5pVIppVIpe++9d3784x+nZ8+eLX4mAAAAAAAAAAAwR6uGkKZOnZpTTjklN954Y5L/rkbUqVOn7Lrrrtlnn32y1VZbtdbjFurtt9/Orbfemr/97W8ZM2ZM+XypVEqPHj3yy1/+MjvvvPMy7wMAAAAAAAAAAFYGrRZCeu655/KDH/wgY8aMKYePevfunYMPPjgHHHBAunTp0hqPWSJNTU255557csUVV+Tf//53+XypVMr++++fk046qeI9AQAAAAAAAADAx02rhZDOOeecnHPOOUmSrl275tBDD81BBx2Ujh07tkb5FnviiSdy9tln55FHHkkyJ4j00ksvVbkrAAAAAAAAAABY8dW0ZrE2bdrkm9/8Zu66664cdthhy00AKUm23HLLXHrppbn00kuz3nrrVbsdAAAAAAAAAAD42Gi1lZAeeuihrLrqqllzzTVbo9wyVRRF/vrXv+aAAw6odisAAAAAAAAAALDCa7UQEgAAAAAAAAAAsHJq1e3YAAAAAAAAAACAlY8QEgAAAAAAAAAA0CJCSAAAAAAAAAAAQIsIIQEAAAAAAAAAAC3SpjWLjRkzpjXLLbWBAwdWuwUAAAAAAAAAAFhplIqiKFqr2Prrr59SqdRa5ZZKqVTKiy++WNUeAAAAAAAAAABgZdKqKyElSStmmgAAAAAAAAAAgBVAq4eQWnMlpPkDTYuqLfwEAAAAAAAAAADVsVyshDQ3XDTv3AEDBmS11VZL586d065du0ydOjV1dXUZNWpUZsyYUZ5XFEVqamryyU9+MrW1ta3zEgAAAAAAAAAAwGJr1RDSyy+/vNj3zpw5Mz/+8Y/zj3/8I8mcANJWW22V/fffPzvttFO6deu2wHmNjY156qmncu211+a2224rB5Fmz56d3//+9+nZs2ervAsAAAAAAAAAALB4SkWV9jE7+uij889//jNJ0rZt25x00kn50pe+tEQ1HnvssRx99NGZPHlykmTjjTfONddckzZtWn2BJwAAAAAAAAAAYCFqqvHQG2+8MXfddVeKokipVMpZZ521xAGkJNl6661z4YUXpk2bNimKIs8//3z++Mc/tn7DAAAAAAAAAADAQlUlhHT++ecnSUqlUvbZZ5/suOOOS11r4403zje/+c0kc7Z0u+aaa9LY2NgabQIAAAAAAAAAAIuh4iGk5557Lm+88UZ5/LWvfa3FNffff//y8aRJk/Loo4+2uCYAAAAAAAAAALB4Kh5CGjVqVPm4trY2G2ywQYtrrrHGGmnfvn1KpVKS5J133mlxTQAAAAAAAAAAYPFUPIQ0fvz48nGnTp1arW5tbW35uK6urtXqAgAAAAAAAAAAi1bxEFK7du3Kx/X19ZkyZUqLa44bNy7Tpk0rjzt37tzimgAAAAAAAAAAwOKpeAhptdVWaza+++67W1zzlltuSZIURZEkWWuttVpcEwAAAAAAAAAAWDwVDyENGTIkNTU1KZVKKYoiZ599dqZPn77U9UaPHp3zzjsvpVIpSdKhQ4dsvvnmrdUuAAAAAAAAAADwESoeQlpllVWyzTbbpCiKlEqljB49Ot/73veWKog0duzYHHzwwZk6dWq53u67756OHTsug84BAAAAAAAAAIAFqXgIKUm+973vlY+LosgjjzySL37xi7nzzjsze/bsj5w/ZcqUXH755dlzzz3z5ptvNlsF6aijjlpmfQMAAAAAAAAAAB9WKoqiqMaDTzzxxFx33XXlbdmSpFQqpVu3btlyyy2z3nrrpU+fPuncuXOSOcGjcePG5YUXXsiTTz6ZhoaG8upHc/978sknZ999963G6wAAAAAAAAAAwEqraiGkmTNn5sgjj8wDDzxQXslo3jDSosx/X1EUOeaYY3LEEUcsw44BAAAAAAAAAIAFqVoIKUlmzZqV3//+97nsssvS1NTULHy0sLbmv6dbt275xS9+kd12222Z9wsAAAAAAAAAAHxYVUNIc7322ms5//zz889//jMNDQ3l8/OviDRvqz169Mh+++2XQw89NN27d69YrwAAAAAAAAAAQHPLRQhprqlTp2bEiBF56qmn8p///Cfjxo3L1KlTkySdO3dO//79M3jw4GyzzTbZeuut065duyp3DAAAAAAAAAAALFchJAAAAAAAAAAAYMVTU+0GAAAAAAAAAACAFZsQEgAAAAAAAAAA0CJtqt3A/BobG/PCCy/ktddey6RJkzJ58uTMmDEjw4cPL98zZsyYTJ06NYMHD65ipwAAAAAAAAAAQJKUiqIoqt1Ekjz66KO59NJLM2LEiDQ0NHzo+ksvvVQ+/utf/5qf/exn2XDDDXPMMcfkM5/5TCVbBQAAAAAAAAAA5lH1lZDGjRuX4447Lo899liSZEGZqFKp1Gw8evToFEWRF198MYcffnj22muv/OIXv0j79u0r0jMAAAAAAAAAAPBfNdV8+JNPPpm99947jz32WDl8VCqVmn0W5J133ikfF0WRm2++OYcffnhmzZpVkb4BAAAAAAAAAID/qloI6Y033sgRRxyRiRMnJpkTPiqKIkVRpFevXhkwYMACV0VKkkmTJpWP587797//nZNPPrkSrQMAAAAAAAAAAPOoSgipqakpRx99dCZPnlwOEXXq1ClHHnlk/vGPf+Shhx7KYYcdttD55513Xk4++eSsssoqKYqiXOO6667Ls88+W8E3AQAAAAAAAAAAqhJCuuGGG/Laa6+Vw0MDBw7MTTfdlKOPPjqrr776R85v27Zt9ttvv9x8883ZbLPNyismFUWRyy67bFm3DwAAAAAAAAAAzKMqIaQrrriiHEBq3759LrroogwaNGiJ6/Tq1Svnn39++vTpU673z3/+MzNnzlwGXQMAAAAAAAAAAAtS8RDSuHHj8sorryRJSqVSvvGNb2SttdZa6no9evTIYYcdVl4NaebMmXnhhRdapVcAAAAAAAAAAOCjVTyE9OyzzyZJOTS05557trjm5z73uSRzQk1JMmrUqBbXBAAAAAAAAAAAFk/FQ0gTJkwoH9fW1mbw4MEtrtmvX7906tSpPP7ggw9aXBMAAAAAAAAAAFg8FQ8h1dfXl487d+7canXbtGlTPp49e3ar1QUAAAAAAAAAABatzUff0rq6d+9ePp4yZUqamppSU9OyLNSMGTPywQcflLdj69mzZ4vq8fEwduzY3HPPPeXx6quvno4dO1axIwAAAAAAAACA6ps+fXreeuut8njYsGEZMGBAi2pWPITUu3fv8nFTU1OeffbZDBkypEU1//3vfydJiqJIqVRq9gxWXvfcc09OOumkarcBAAAAAAAAALDc+9rXvtai+RXfjm2zzTZLqVQqr1r0t7/9rcU1r7zyyg89AwAAAAAAAAAAqIyKh5D69OmTDTbYIMmclYtuuummPPnkk0td77bbbsv9999fDjWtt956VkICAAAAAAAAAIAKqvh2bEly4IEH5oQTTkipVMrs2bNz9NFH57zzzssmm2yyRHXuuOOO/L//9/9SKpXKW7Htv//+y6hrVjSDBg1qNv7pT3+a9dZbr0rdAAAAAAAAAAAsH1555ZWcdNJJ5fH8GYulUZUQ0j777JNLL700o0aNSqlUyvvvv5+vfe1r+frXv56vfvWrH/lizz//fC644ILcdddd5fBRkgwYMCAHHHBAJV6BFUCnTp2ajddbb71stdVWVeoGAAAAAAAAAGD5NH/GYmlUJYRUU1OTM844IwceeGCmTJmSUqmUmTNn5pJLLskll1ySgQMHpk2b5q2ddtppGT16dJ5++um89957SVIOIBVFkXbt2uX000//0DwAAAAAAAAAAGDZqlpiZ/DgwTnrrLNy5JFHZvr06eUwUZKMHj26vLpRMidsdOmll5aP55o7p7a2Nr/85S+tcgMAAAAAAAAAAFVQU82HDx06NNdff30GDx5cXtVo7idJs/Hc8NH851ZZZZVcdtll2Wuvvar5KgAAAAAAAAAAsNKqaggpSdZaa63ceOONOf3007PBBhukKIoFfpI0G/fp0yc//vGP8/e//90KSAAAAAAAAAAAUEVV245tXrW1tdlzzz2z5557ZsyYMXniiSfywgsvpK6uLpMnT86sWbPSrVu3dO/ePeuss0623nrrrLfees22bAMAAAAAAAAAAKpjuQghzWvgwIEZOHBg9thjj2q3AgAAAAAAAAAALIaqb8cGAAAAAAAAAACs2KoSQjr88MPzj3/8I7Nnz67G4wEAAAAAAAAAgFZUle3Y7rvvvtx///3p0aNH9txzz+y9995Zf/31q9EKAAAAAAAAAADQio2j4wAA6BxJREFUQlXdjq2uri6XX3559t577+yzzz65+uqr88EHH1SzJQAAAAAAAAAAYAlVNYRUKpVSFEWKosiLL76YX/7yl9l+++3zox/9KA899FA1WwMAAAAAAAAAABZTVUJIRx11VAYNGpSiKJLMCSPNDSTNmDEjd9xxRw455JDstNNOOeuss/L2229Xo00AAAAAAAAAAGAxVC2E9I9//CNXX311vvzlL6dr167NAklJUhRFxo4dmz/96U/53Oc+l4MOOig333xzGhoaqtEyAAAAAAAAAACwEFXdjm2LLbbISSedlAcffDB/+MMfsuOOO6a2tjZFUTRbHakoijz++OP5yU9+ku222y4//elP8/TTT1ezdQAAAAAAAAAA4P/XptoNJEm7du2y6667Ztddd83EiRNz66235uabb86LL76YpPnqSFOmTMl1112X6667LmuttVb23Xff7LXXXllllVWq+QoAAAAAAAAAALDSqupKSAvSq1evfPOb38wNN9yQ22+/Pd/5znfSt2/fBW7X9p///Ce//e1vs+OOO+aII47IP//5zzQ2NlazfQAAAAAAAAAAWOksdyGkea2zzjo57rjj8q9//SsXX3xx9txzz3Ts2LFZIKkoisyePTv/+te/cvTRR+czn/lMlbsGAAAAAAAAAICVy3KxHdtHKZVK+dSnPpVPfepTmTFjRu6+++78/e9/zwMPPJCGhobyfUVRZOLEiVXsFAAAAAAAAAAAVj4rRAhpXu3bt8/uu++ePn36pEePHrn++uvT1NRU7bYAAAAAAAAAAGCltcKEkIqiyIgRI3LnnXfm7rvvzvvvv1/tlgAAAAAAAAAAgKwAIaQXX3wxt9xyS2677bZy8KgoiiRztmmbe9yuXbvsvPPO2W+//arWKwAAAAAAAAAArIyWyxDS2LFjc+utt+aWW27JqFGjkjQPHs0NHxVFkQ033DD77rtv9thjj3Tr1q2abQMAAAAAAAAAwEppuQkhTZkyJX//+99z880354knniiHjJIPB4+6d++ePfbYI/vtt1/WX3/9KncOAAAAAAAAAAArt6qGkBobG3Pffffllltuyb333puZM2cmab7q0dxxTU1NPvWpT2XffffNzjvvnHbt2lWtbwAAAAAAAAAA4L+qEkJ65plncvPNN+f//u//MmnSpCQL325ttdVWyz777JN99tkn/fv3r0a7AAAAAAAAAADAIlQlhHTAAQeUg0bJh4NHHTp0yC677JJ99903n/zkJ6vRIgAAAAAAAAAAsJiquh3bvNutJckmm2ySfffdN1/84hfTpUuXarYGAAAAAAAAAAAspqqGkIqiSM+ePbPnnntmv/32y+DBg6vZDgAAAAAAAAAAsBSqEkKqqanJ9ttvn3333TfDhg1LmzZVzUIBAAAA8DHT2FRkfH3DAq/17dohtTWlCncEAAAA8PFWlfTPv/71r/Tt27cajwYAAABgJTC+viFDT71ngddGDB+WAd07VrgjAAAAgI+3mmo8VAAJAAAAAAAAAAA+PqoSQgIAAAAAAAAAAD4+hJAAAAAAAAAAAIAWadOaxTbYYINm41KplBdffPEj72tNC3smAAAAAAAAAACwbLRqCKkoila9DwAAAAAAAAAAWP61aggpmbMSUfLRQaO597Um4SYAAAAAAAAAAKi8Vg8hWQ0JAAAAAAAAAABWLq0aQrr77rtb9T4AAAAAAAAAAGD516ohpFVXXbVV7wMAAAAAAAAAAJZ/NdVuAAAAAAAAAAAAWLEJIQEAAAAAAAAAAC0ihAQAAAAAAAAAALRIm2o3MK/Zs2fnueeeyxNPPJHXXnstkyZNyuTJkzNz5szccMMN5fueffbZPPfcc9ltt93Sq1evKnYMAAAAwIqusanI+PqGhV7v27VDamtKFewIAAAAYMWzXISQ6urqctVVV+Xqq69OXV1ds2tFUaRUav5DnmeeeSannHJKfvOb3+TrX/96jjzyyHTs2LGSLQMAAADwMTG+viFDT71noddHDB+WAd397AkAAABgUaq+HdsDDzyQL3zhCzn33HMzceLEFEVR/izM6NGjkyQNDQ256KKLsv/+++ett96qVMsAAAAAAAAAAMA8qhpCuuqqq3L44YeXw0elUulDqx4tyOjRo8v3FkWRkSNH5lvf+lbGjRtXga4BAAAAAAAAAIB5VS2EdM899+SUU05JU1NTOXhUFEX69u2b3XbbLZ/+9KcXuhpS//79U1NT02yrtjFjxuTHP/5xxfoHAAAAAAAAAADmqEoIacqUKTn++OPLAaSiKLLBBhvksssuy3333Zczzjgju+yyy0LnH3/88bn99tvzqU99qlkQ6fHHH8///d//Veo1AAAAAAAAAACAVCmE9Oc//zl1dXXl8NCnPvWpXHvttdl2220Xu8aaa66Ziy66KF/5yleaBZGuvvrqZdIzAAAAAAAAAACwYFUJId18883lFZBWWWWVnH322WnXrt0S1ymVSvnZz36WjTbaKMmc7dwef/zxTJ48ubVbBgAAAAAAAAAAFqLiIaRXXnkl7777bpI5IaLvfve76dy581LXK5VKOfTQQ1MURfncc8891+I+AQAAAAAAAACAxVPxENKoUaOSpBwa2nnnnVtcc7vttkupVCpvyfbOO++0uCYAAAAAAAAAALB4Kh5CmjBhQvm4ffv26devX4trdunSJV27di2P6+vrW1wTAAAAAAAAAABYPBUPIc2YMaN83K5du1arO2vWrPJxbW1tq9UFAAAAAAAAAAAWreIhpF69epWP6+vrM3369BbXrKura1anZ8+eLa4JAAAAAAAAAAAsnoqHkObffu3RRx9tcc377rsvSVIURZKkf//+La4JAAAAAAAAAAAsnoqHkLbYYou0bds2pVIpSXLppZe2qF5TU1MuvPDCcr22bdtm8803b2mbAAAAAAAAAADAYqp4CKlTp07ZZpttUhRFiqLII488kmuuuWap65122mkZOXJkkqRUKmXLLbdMhw4dWqtdAAAAAAAAAADgI1Q8hJQkhx12WJI5oaGiKHLyySfniiuuWKIaM2fOzM9//vNcfvnl5TpJ8q1vfau12wUAAAAAAAAAABahKiGkbbfdNsOGDUtRFCmVSmlsbMyvfvWr7LfffrnhhhsyZsyYNDU1LXDum2++mYsvvji77LJLrr322nL4aO4qSDvssEMlXwUAAAAAAAAAAFZ6bar14NNOOy1f+cpXMmrUqPJKRs8//3yOP/748j3zrnC0zz77ZPTo0fnggw+SpFn4qCiK9O3bN7/73e8q/yIAAAAAAAAAALCSq8pKSEnStWvXXHjhhfnEJz5RXhFpbqBo3k8yJ3D04osvZvLkyeXz897fr1+/nHfeeenXr1+1XgcAAAAAAAAAAFZaVQshJcmAAQPyt7/9LV/96ldTW1vbLFz0UZ+5YaQddtghN954YzbccMNqvgoAAAAAAAAAAKy0qhpCSpJ27drlZz/7Wf7xj3/km9/8ZgYOHPih1ZDm/3Tr1i1f+MIX8te//jXnn39+evXqVe3XAAAAAAAAAACAlVabajcw18CBAzN8+PAMHz4848ePz/PPP5+6urpMnjw5s2bNSrdu3dK9e/ess846WW+99ardLgAAAAAAAAAA8P9bbkJI8+rbt2+GDRtW7TYAAAAAAAAAAIDFUPXt2JbUhAkT8s4771S7DQAAAAAAAAAA4P+3XISQ3n///Zx33nk58MADM2rUqEXee+edd2aXXXbJTjvtlHPOOScTJkyoUJcAAAAAAAAAAMCCVDWE1NTUlLPOOivDhg3LmWeemaeeeir/+c9/FjnnnXfeSVEUGTt2bM4999zsuuuuufbaayvUMQAAAAAAAAAAML821XrwzJkzc8QRR+Thhx9OURRJklKplNdff32R895+++2USqUkSVEUmTJlSn7+85/nP//5T4YPH77M+wYAAAAAAAAAAJqr2kpI/+///b889NBDKYoipVIppVIpRVF8ZAipU6dOad++/YfmXX755bnwwgsr1D0AAAAAAAAAADBXVUJI999/f2677bZmIaL+/fvnJz/5SX7wgx8scu7pp5+eRx99NL///e+z7rrrlsNIRVHkzDPPzMiRIyvzEgAAAAAAAAAAQJIqhZAuvvjiZuNddtklt99+e771rW+lX79+Hzm/Xbt22X333XPjjTfmC1/4QjmINHv27FxwwQXLqm0AAAAAAAAAAGABKh5CmjhxYh555JHy6kUbbrhh/vCHP6RTp05LXKtNmzY57bTTssEGGyRJiqLI3//+98yYMaO12wYAAAAAAAAAABai4iGkZ599NknKqxd9//vfT21t7VLXa9OmTb773e+mKIokyaxZs/Lkk0+2Sq8AAAAAAAAAAMBHq3gIacyYMeXj2traDB06tMU1t99++5RKpZRKpSTJW2+91eKaAAAAAAAAAADA4ql4CKm+vr583KVLl7Rr167FNTt16pRu3bqVx5MnT25xTQAAAAAAAAAAYPFUPIQ0b+hoypQprVa3oaGhfNyhQ4dWqwsAAAAAAAAAACxaxUNIq6yySvm4sbExr7zySotrvvPOO5kxY0Z53KtXrxbXBAAAAAAAAAAAFk/FQ0jrr79+kqRUKiVJbrnllhbXvOOOO5IkRVEkSdZdd90W1wQAAAAAAAAAABZPxUNIgwcPzsCBA5PMCQ1deeWVGTVq1FLXGzduXP785z+XQ02rrLJKOegEAAAAAAAAAAAsexUPISXJXnvtlaIoUiqVMmPGjBxyyCH5z3/+s8R1xo0bl0MOOST19fXlenvssccy6BgAAAAAAAAAAFiYqoSQDjrooHTt2jXJnG3Zxo4dm3322Sdnn3123n333Y+cP3HixFx00UX54he/mJEjR5ZXQerSpUsOO+ywZdo7AAAAAAAAAADQXJtqPLRXr175yU9+kuOPPz6lUimlUikNDQ354x//mPPOOy9rrbVWNthgg/Tp0yddunRJkkydOjUTJkzIyy+/nFGjRqWxsbG8+tHc//70pz9Njx49qvFKAAAAAKwkGpuKjK9vWOC1vl07pLamVOGOAAAAAKqvKiGkJNl3333z1ltv5fzzzy8HkYqiSGNjY0aOHJlRo0YtcF5RFOXjuSsgJckxxxxjKzYAAAAAlrnx9Q0Zeuo9C7w2YviwDOjescIdAQAAAFRfVbZjm+vYY4/Nqaeemi5dupRXM5r7SeYEjub9JGl2T1EU6dKlS84888x897vfrearAAAAAAAAAADASquqIaQk2XvvvXPXXXfl8MMPT79+/T4UOprXvNd69uyZI488MnfeeWc+//nPV6FzAAAAAAAAAAAgqeJ2bPPq0aNHjj322PzgBz/Iyy+/nCeffDKvv/56xo0bl2nTpiVJunfvnm7dumXdddfN5ptvnvXXXz+1tbVV7hwAAAAAAAAAAFguQkhzlUqlbLDBBtlggw2q3QoAAAAAAAAAALCYqr4dGwAAAAAAAAAAsGITQgIAAAAAAAAAAFpkudqOba6JEyfm1VdfzaRJkzJ58uTMmDEj3/jGN8rX6+rqUlNTk+7du1exSwAAAAAAAAAAIFmOQkhvv/12Lr/88tx///156623PnR93hDSPffck5///OfZaaedcvTRR2fw4MGVbBUAAAAAAAAAAJhH1UNI06ZNyy9/+cvccsstaWpqSlEUH7qnVCo1G48ePTqzZs3KXXfdlbvvvjvf/e53c/TRR1eqZQAAAAAAAAAAYB411Xz466+/nn322Sc33XRTGhsbUxRFSqVSs8+CjB49unzc2NiYP/7xj/nxj39cqbYBAAAAAAAAAIB5VC2ENGHChHznO9/JG2+8UQ4fJSmvhNSxY8cFroqUJGPGjCkfl0qlFEWR22+/PWefffaybxwAAAAAAAAAAGimaiGkY489NmPGjCmveFRTU5MvfelLueSSS/LUU0/lf/7nfxY698wzz8wRRxyRDh06JPlvEOmCCy7IqFGjKvUKAAAAAAAAAABAqhRCuuuuu/LYY4+Vw0PdunXLlVdemV//+tcZOnRoOVy0ML169coxxxyTG264Iauvvnr5/OzZs3PppZcu4+4BAAAAAAAAAIB5VSWEdNFFFyWZs/VabW1tzjvvvGy++eZLXGettdbKxRdfnC5dupQDTXfccUdmz57d2i0DAAAAAAAAAAALUfEQ0sSJE/Pss8+Wt2Hbb7/9liqANNeqq66agw8+OEVRJEmmTZuWl19+ubXaBQAAAAAAAAAAPkLFQ0hPP/10mpqayqGhfffdt8U1v/jFLyZJSqVSkuS1115rcU0AAAAAAAAAAGDxVDyE9N577/334TU12WSTTVpcc9CgQenYsWN5PHny5BbXBAAAAAAAAAAAFk+bSj9w0qRJ5eMuXbqUVy9qqXbt2mX69OkplUqZOXNmq9RcUpMmTcr111+fBx54IK+99lomT56cLl26pH///hkyZEj22WefbLrppsu8j1mzZuXOO+/MQw89lGeeeSbvv/9+pk6dms6dO6d3797ZbLPNsv322+dzn/tc2rRZ8t8CTU1Nuffee3PHHXfk2WefzYQJE5Ikffv2zVprrZUvfOEL2WWXXdKhQ4fWfjUAAAAAAAAAAJZDFQ8hde3atXw8derUVqk5e/bsfPDBB+VAU7du3Vql7pK47rrrcuqpp37onerq6lJXV5eXXnop11xzTT772c/mlFNOSc+ePZdJH3fccUdOPfXUjB8//kPXJk2alEmTJmXUqFG54YYbstpqq+XEE0/MjjvuuNj1R44cmf/5n//JCy+88KFrb7zxRt54443ce++96devX37zm99k2223bcnrAAAAAAAAAACwAqj4dmyrrLJK+bixsTEvvfRSi2s+9dRTKYoiRVEkSXr37t3imkvijDPOyAknnLBYoaq77747e++9d8aNG9fqfZx22mk59thjFxhAWpB33nkn3/3ud3PBBRcs1v3PPvtsvvrVry4wgDS/cePG5Vvf+lZuuummxaoNAAAAAAAAAMCKq+IrIW244YZJUl616JZbbskGG2zQoprXXntts/FGG23UonpL4qabbsp5553X7Nyuu+6aPffcM4MGDcrkyZPz4IMP5pprrsnkyZOTJGPHjs1RRx2Vq666Ku3atWuVPi6++OJcfPHFzc6tt9562W+//bLJJpukW7dumTRpUp5++un85S9/yVtvvZUkKYoiv/vd79KvX7/stddeC63//vvv53vf+14++OCD8rm11147Bx10UDbeeOO0adMmL730Uq666qpySKmpqSknnnhi1lxzzQwZMqRV3hMAAAAAAAAAgOVPxVdCWm211bL22msnmROA+ctf/pJRo0Ytdb0RI0bk9ttvL4ea1lhjjQwcOLBVev0oEydOzMknn1we19TU5Pe//33OPPPMfPazn80nPvGJbL311jn22GNz4403ZvDgweV7n3322Vx++eWt0sfYsWNz5plnNjt39NFH5+abb843vvGNbL755llnnXWy5ZZb5jvf+U7uuOOOHHDAAc3u/+Uvf5m6urqFPuPUU0/Ne++9Vx5//vOfz0033ZQDDzwwm266aTbccMPsu+++ue666/KNb3yjfN/MmTNz4oknpqmpqVXeFQAAAAAAAACA5U/FQ0hJst9++6UoipRKpUyfPj3f+973Mnr06CWu88QTT+SYY45JknK9vffeu7XbXagLL7ww9fX15fHRRx+dL3zhCwu8d9VVV80FF1yQnj17ls/9+c9/zpQpU1rcx8UXX5yGhoby+Gtf+1qOOuqocjBrfm3bts0vfvGLDBs2rHyuvr4+V1xxxQLvf/XVV3PbbbeVx4MHD85vfvObtG/f/kP31tbW5vjjj89uu+3WbP7tt9++xO8FAAAAAAAAAMCKoSohpK9//esZMGBAkjnbsr355pvZd999c9VVV2X69OkfOX/ChAk57bTT8s1vfrPZ9mA9evTIQQcdtMz6ntfMmTNz/fXXl8e9e/fOIYccssg5AwcOzBFHHFEeT5o0qcXhnKIocuedd5bHnTp1yve///2PnFcqlfK///u/zc7dc889C7z3L3/5S4qiKI+POeaYBQaQ5nXCCSc022ruqquu+sieAAAAAAAAAABYMVUlhNSuXbucdtppadOmTZI5gZhJkybl5JNPztChQ/ONb3wjN910U7M5V155ZU477bR89atfzY477phLL700s2fPTqlUSlEUqampyUknnZROnTpV5B1GjBiRSZMmlce77757s9DNwuy9997l907SLEC0NN58882MGzeuPN5mm23So0ePxZq75pprZvXVVy+PX3311Q9tmzZ/yKlHjx7ZaaedPrL2Kqus0uy+p59+ulmfAAAAAAAAAAB8fFQlhJTMCcuccsopqamZ08LcMFFDQ0Mee+yxPPPMM+V7i6LIKaeckksvvTRPP/10Zs+eXd5+ba4f/OAH2WWXXSrW/8MPP9xsvP322y/WvG7dumXTTTctj//973+3aEu2UaNGNRuvu+66SzS/d+/e5ePGxsZmwaokeeWVVzJhwoTyeOjQoc1CVIsy769JURS5++67l6g3AAAAAAAAAABWDFULISXJnnvumcsuuyx9+/Yth4rmDRbNHc8NKM3dEmzecx06dMhvf/vbHHbYYRXt/YUXXmg23mSTTRZ77sYbb1w+nj17dp5//vml7mP77bfPP/7xj1xxxRX57W9/m89//vNLNH/8+PHNxp07d242bq33TNIsWAYAAAAAAAAAwMfH4i1pswxttdVWufXWW3PVVVflqquuarbqTpJmoaQk5SBShw4dsvfee+c73/lOVltttYr1O9e8KxD17NkzvXr1Wuy5a6655odqffKTn1yqPtq1a5c11lgja6yxxhLPffPNNzN69OjyuFevXmnfvv2HepvXOuuss9j15+9p5MiRS9wjAAAAAAAAAADLv6qHkJI5W5QdccQROeSQQ/L000/niSeeyAsvvJC6urpMnjw5M2fOTPfu3dO9e/ess8462WqrrbLtttuma9euVem3oaEhEydOLI8HDBiwRPP79evXbDxvEKiSLrvssmbjT33qUx+6Z8yYMc3G/fv3X+z6nTp1Srdu3fLBBx8ssBYAAAAAAAAAAB8Py0UIaa62bdtm6623ztZbb13tVhZp/tWaevfuvUTz5181qa6ursU9LamXX345f/3rX5ud+8IXvvCh+95///1m41VWWWWJntOrV69yCGnSpEnlbfcAAAAAAAAAAPj4qEoI6Xe/+12eeeaZ7L///vnc5z73oS3AlndzQzVzdenSZYnmd+7cudm4vr6+xT0tiSlTpuRHP/pRZs2aVT636aabZtiwYR+6d/Lkyc3GLXnXpqamTJ06dYlqjBkzZqlXUHrllVeWah4AAAAAAAAAAEum4iGkGTNm5JprrsnUqVPz2GOP5Ze//GUuv/zyrL/++pVuZanNnDmz2bhDhw5LNL9du3aLrLcszZo1K8cee2xGjhxZPte2bduccMIJC7y/2u96/fXX55xzzlmiOQAAAAAAAAAAVFZNpR/46KOPZsqUKUmSoijStWvXrLfeepVuo0XmXUEoSWpra5dofps2zbNfs2fPbnFPi2P27Nn54Q9/mPvvv7/Z+R//+MfZbLPNFjhn3ndd0vdMPvyu8//aAQAAAAAAAACw4qv4SkijRo0qH5dKpWy99dYplUqVbqNF5u+3qalpiebPf//ShHuWVENDQ37wgx/k3nvvbXZ+r732yre+9a2Fzqup+W9ObUnfM0kaGxubjecPJQEAAAAAAAAAsOKreiJklVVWqXYLS2z+LcaWdCWj+e+fv15rmzx5cr73ve/l8ccfb3Z+l112ya9+9atFzp23t6Io0tjYuEShqflDSEv6rvvuu2+GDh26RHPmeuWVV3LSSSct1VwAAAAAAAAAABZfxUNI6667brPxvCsjrSg6d+7cbDx9+vQlmj9t2rRm4w4dOrS4p4V56623cthhh+X1119vdv7zn/98fve7333kykQLetcuXbos9vNb+q4DBw7MwIEDl2gOAAAAAAAAAACVVfPRt7SuT3/601ljjTWSzFlZ5/7778/IkSMr3UaL9OzZs9n4gw8+WKL59fX1zca9e/ducU8L8vjjj+fLX/7yhwJI++23X84444y0bdv2I2v06NGj2XhJ33Xe+7t167ZYzwQAAAAAAAAAYMVS8RBSqVTKGWeckW7duiWZs13XIYcckhdffLHSrSy1nj17pn379uXxhAkTlmj+/Pcviy3pbr755nz7299OXV1ds/OHH354TjnllMXeUq1///7NxkvyrkVRZOLEieXxirj1HgAAAAAAAAAAH63iIaQk2XDDDfO3v/0tm222WZLk3Xffzb777pvvfOc7+fOf/5zHH388Y8aMydSpU6vR3kcqlUoZNGhQeTx69OgURbHY899+++1m47XXXrvVekuSP//5z/mf//mfzJw5s3yutrY2P//5z/PDH/5wiWqtvvrqzcbvvPPOYs999913M2vWrPJ4rbXWWqJnAwAAAAAAAACwYmhTjYf+/Oc/T5Kst956eeONN/LBBx+kKIo8/PDDefjhh1tUu1QqVWRVpfXXX7+8jVxDQ0PefvvtDwV2Fua1115rNh48eHCr9XXmmWfmj3/8Y7NznTp1yu9+97sMGzZsiettsMEGzcavvvpqdt9998Wa++qrrzYbt+Z7AgAAAAAAAACw/KhKCOkvf/lLSqVSs3OlUmmJVhOqti222CK33XZbefzEE08sdgjpySefLB/36dMna6yxRqv09Mc//vFDAaRevXrl/PPPz6abbrpUNTfbbLO0adMms2fPTjLnPRfXvO+ZJFtvvfVS9QAAAAAAAAAAwPKtKtuxLUypVGrRp5I+85nPNBvfeeedizXv6aefzrhx48rj7bffvlX6ueOOO3LmmWc2O7fqqqvmL3/5y1IHkJKkS5cu2XzzzcvjJ598MhMmTFisufP+mnTq1ClbbbXVUvcBAAAAAAAAAMDyq2ohpKIoWv1TSYMGDWoWzrnvvvvy0ksvfeS88847r9l43333bXEvo0ePzk9/+tMP9Xf11Ve3yipLe+65Z/l49uzZufDCCz9yzj/+8Y+8/vrr5fFuu+2WDh06tLgXAAAAAAAAAACWP1XZju3uu++uxmNb3be//e089dRTSZKmpqYcc8wxufbaa9OzZ88F3n/xxRfn3nvvLY+HDBnSKqsDnXjiiamvry+Pu3XrlgsuuCD9+/dvce0k2WOPPXLmmWeWV0C67LLLsuWWW2aXXXZZ4P1vvPFGTjzxxPK4trY23/72t1ulFwAAAAAAAAAAlj9VCSGtuuqq1Xhsq/vc5z6XrbfeOo899liS5M0338wBBxyQU089NVtuuWX5vilTpuTcc8/NxRdfXD5XW1ub4cOHL7T2DTfc0Oz6qquumnvuuedD9z399NN56KGHmp375je/mdra2rz55ptL/E6rrrpq2rRp/tuiY8eOOfbYY3P88ccnmRO4OvbYY3PsscfmoIMOSrt27ZLMWd3q3nvvzfHHH59JkyaV53/lK1/J4MGDl7gXAAAAAAAAAABWDFUJIX1clEqlnH766TnwwAMzduzYJHOCSAceeGDWXXfdrLXWWpkyZUqeeeaZTJs2rdncY489NkOGDGlxD5deeumHzp199tk5++yzl6re3XffndVWW+1D5/fbb7889thjuemmm5Iks2bNyumnn54LLrggG2+8cdq3b59XXnkl77zzTrN5G264Yf73f/93qXoBAAAAAAAAAGDFIITUQgMHDsxll12W73znO3n77bfL50eOHJmRI0d+6P5SqZSjjz46hx56aIufXRRFHnjggRbXWVy/+tWvUlNTkxtuuKF8btKkSXnwwQcXeP9mm22W888/P+3bt69UiwAAAAAAAAAAVEFNtRv4OFhjjTVy22235YgjjkivXr0Wet9WW22VK6+8MkceeWSrPLeuri5TpkxplVqLo7a2NqeeemouuOCCbLjhhgu9r2/fvjnuuONy9dVXp2fPnhXrDwAAAAAAAACA6rASUivp0KFDfvCDH+Too4/OU089lTfeeCMTJ05MmzZt0r9/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n/xkPve5z2WttdaqUqfAisw3ugAAAAAAAADQupaLENJf//rXnHfeeRk7dmySpCiKBd43YcKEvP/++3nkkUfyhz/8Idtuu21++MMfZtNNN61kuwAAAAAAAAAAwDxqqvnw9957L1/72tfys5/9LGPGjElRFCmKIqVSaaGfJOX7HnnkkXzlK1/J6aefnqampmq+CgAAAAAAAAAArLSqthLSuHHj8vWvfz3vvPNOOXiU/Ddg9FHm3t/U1JRLLrkkY8aMye9///vU1FQ1VwUAAAAAAAAAACudqoSQiqLIMccck7fffru8wtHcINK2226b7bffPhtuuGH69OmTrl27Zvbs2ZkyZUrefffdvPjii7n//vvz9NNPN5t755135uyzz84xxxxTjVcCAAAAAAAAAICVVlVCSH/729/KIaJkTihp6623zi9+8YusvfbaC523/vrrZ8cdd8z3vve9vPzyyznhhBPy/PPPl4NIF1xwQb7whS9k3XXXrdSrAAAAAAAAAADASq8qe5ddeuml5eBQknzpS1/K5ZdfvsgA0vzWX3/9XHvttfnsZz9bXkWpqakpf/rTn5ZV2wAAAAAAAAAAwAJUPIQ0atSojBo1qjxef/3186tf/aq8KtKSqK2tzRlnnJE11lgjyZwVle66665MmTKl1foFAAAAAAAAAAAWreIhpOeffz5JyqsXHXXUUampWfo22rVrl6OOOqq8qtKsWbPy5JNPtkqvAAAAAAAAAADAR6t4CGnChAnl41KplO23377FNYcNG1aulyRvvvlmi2sCAAAAAAAAAACLp+IhpHm3XevatWvatWvX4pqdO3dOt27dyuPp06e3uCYAAAAAAAAAALB42lT6gf379y8f19fXZ+bMmS0OIhVFkWnTppXHffr0aVE9AAAAAAAAqquxqcj4+oYFXuvbtUNqa0oLvAYAQHVUPIS03nrrlY+Losj999+fnXfeuUU1n3vuucyePTvJnJWWBg8e3KJ6AAAAAAAAVNf4+oYMPfWeBV4bMXxYBnTvWOGOAABYlIpvx7bOOutk0003TalUSlEUOfPMM8sBoqV12WWXJZkTQFp77bWz8cYbt0arAAAAAAAAAADAYqh4CClJjj322JRKpZRKpYwcOTLHH398iqJYqlq33nprbr/99vL4qKOOaq02AQAAAAAAAACAxVCVENLQoUNz7LHHloNHt9xySw499NCMGzduiepccsklGT58eJI5qyDtscce2W233Vq9XwAAAAAAAAAAYOHaVOvBhx56aHr27Jlf/OIXmT17dh566KF8/vOfz6677prPf/7z2WSTTbLKKqs0mzNr1qy89tpreeSRR/K3v/0tr7/+eoqiSKlUyjrrrJO99947jz322GI9f+utt14WrwUAAAAAAAAAACudqoSQdtxxx/JxTc2cxZiKokhDQ0Nuvvnm3HzzzUmSDh06pGvXrmnbtm2mTJmSqVOnprGxsXx/MmcFpKIoMmrUqBx88MGL9fxSqZQXX3yxFd8IAAAAAAAAAABWXlUJIb377rvl8FCpVEqS8n/nhouSZPr06Zk+ffoCa8y9f+7xvPMAAAAAAAAAAIDKqdp2bEnzINGizi1trQURVgIAAAAAAAAAgNZVlRDSwIEDq/FYAAAAAAAAAABgGahKCOmee+6pxmMBAAAAAAAAAIBloKbaDQAAAAAAAAAAACu2qqyEBMAcjU1Fxtc3LPBa364dUltTqnBHAAAAAAAAALDkhJAAqmh8fUOGnrrgLSpHDB+WAd07VrgjAAAAAAAAAFhytmMDAAAAAAAAAABaRAgJAAAAAAAAAABokapsxzZ8+PBlVrtUKuVXv/rVMqsPAAAAAAAAAAA0V5UQ0o033phSqdTqdYuiEEICAAAAAAAAPnYam4qMr29Y4LW+XTuktqb1//4VAJZEVUJILVEUxQLPL4tQEwAAAAAAAMDyYHx9Q4aees8Cr40YPiwDunescEcA0FzVQkgLCxMtjvkDR0VRtKgeAAAAAAAAAACw9KoSQjrqqKOWeM6sWbMyffr0jB8/Pi+//HLeeOON8rW+ffvmnHPOyVprrdWKXQIAAAAAAAAAAItjhQkhzW/kyJE5+eST88gjj+S9997Ld7/73Vx88cVZf/31W6FDAAAAAAAAAABgcdVUu4Glte666+bSSy/Nvvvum6IoMnHixPzwhz/MjBkzqt0aAAAAAAAAAACsVFbYENJcP//5z7PuuusmSV5//fWcd955Ve4IAAAAAJZOY1ORsZOnL/TT2FRUu0UAAACABarKdmytqW3btjnooIPys5/9LEVR5Prrr8/3v//9lEqlarcGAAAAAEtkfH1Dhp56z0Kvjxg+LAO6d6xgRwAAAACLZ4UPISXJzjvvnJ/97GdJkvfeey9PPfVUtthii4r3MWnSpFx//fV54IEH8tprr2Xy5Mnp0qVL+vfvnyFDhmSfffbJpptuWvG+5nr22Wfz5S9/OUVR5KijjsrRRx+9RPMffvjhfPvb317q5z/22GPp1q3bUs8HAAAAAAAAAGD59LEIIfXu3TsdO3bM9OnTkyRvv/12xUNI1113XU499dRMnTq12fm6urrU1dXlpZdeyjXXXJPPfvazOeWUU9KzZ8+K9jdjxoyccMIJKYqlX7L7lVdeacWOAAAAAAAAAAD4uKipdgOtoSiKzJ49u7wF23vvvVfR559xxhk54YQTPhRAWpC77747e++9d8aNG1eBzuYoiiLHH398i0NEQkgAAAAAAAAAACzIx2IlpDfffDOzZs0qh5A6duxYsWffdNNNOe+885qd23XXXbPnnntm0KBBmTx5ch588MFcc801mTx5cpJk7NixOeqoo3LVVVelXbt2y7S/oihy0kkn5dZbb21xrXlDSJtuuml++9vfLtH8Ll26tLgHqIbGpiLj6xsWeK1v1w6prSlVuCMAAAAAAAAAWL58LEJIV155ZZI5gZtSqZR+/fpV5LkTJ07MySefXB7X1NTkt7/9bb7whS80u2/rrbfOl7/85Rx++OF57bXXkiTPPvtsLr/88hxyyCHLrL8pU6bk+OOPz9///vcW12psbMyoUaPK4w022CBrrLFGi+vCimB8fUOGnnrPAq+NGD4sA7pXLvgIAAAAAAAAAMujFX47tptuuinXXHNNeRWkmpqabLHFFhV59oUXXpj6+vry+Oijj/5QAGmuVVddNRdccEF69uxZPvfnP/85U6ZMWSa9vfbaa9lvv/1aJYCUJK+//npmzJhRHq+33nqtUhcAAAAAAACorsamImMnT1/op7GpqHaLAKwAqrIS0pgxY5ZqXlNTU2bMmJH6+vq89dZbufnmmzNixIg0NTUlSUqlUrbccsv06tWrNdtdoJkzZ+b6668vj3v37v2RqxoNHDgwRxxxRH71q18lSSZNmpTbb789BxxwQKv1NW3atFx44YW56KKL0tDw3+2jamtr09jYuNR1592KLUkGDx681LUAAAAAAACA5ceidoVI7AwBwOKpSghp2LBh5ZWLWmruFmxFMSd9e+SRR7ZK3Y8yYsSITJo0qTzefffd065du4+ct/fee+f000/P7NmzkyR33nlnq4WQbr/99px66ql57733mp1fd9118+1vfzvHH3/8UtcWQgIAAAAAAAAAYGGqth1bURQt/iRpFmbaf//9s+2221ak/4cffrjZePvtt1+sed26dcumm25aHv/73/9utS3Z/vKXv3wogLT//vvn2muvzaBBg1pUe94QUp8+fZptKwcAAAAAAAAAwMqtaiGkUqnU4s/cMFJtbW2++c1v5he/+EXF+n/hhReajTfZZJPFnrvxxhuXj2fPnp3nn3++1fqaa911182ll16ak08+OV26dGlxvXlDSFZBAgAAAAAAAABgXlXZji1JeSWjJVUqldKuXbt069Ytq6++ej71qU/li1/8YtZYY41W7nDRRo0aVT7u2bNnevXqtdhz11xzzQ/V+uQnP9kqfQ0aNCiHH3549tlnn9TW1rZKzQ8++CBjx44tj+cPIc2cOTN1dXWpra1Nz549W+25AAAAAAAAAACsGKoSQnr55Zer8dhW09DQkIkTJ5bHAwYMWKL5/fr1azYePXp0q/Q1fPjwrL/++qmpad0FruZdBSmZE0IaP358/va3v+Wf//xnXn755TQ2NiZJampqstFGG2XYsGE58MAD06NHj1btBVg+NDYVGV/fsNDrfbt2SG1NaaHXAQAAAAAAAPh4qdpKSCuyCRMmNBv37t17iebPv2pSXV1di3tKkg033LBV6sxv/hDS/fffn5NPPjkNDR8OIDQ1NeW5557Lc889l0suuSTHHXdcvvzlLy+TvoDqGV/fkKGn3rPQ6yOGD8uA7h0r2BEAAAAAAAAA1SSEtBQ++OCDZuMuXbos0fzOnTs3G9fX17e4p2Vp/hDSP/7xj8Wa98EHH+TEE0/Mq6++mhNOOGGpnj1mzJiMGTNmqebO3zcAAAAAAAAAAMuGENJSmDlzZrNxhw4dlmh+u3btFllvebOgMM8qq6ySAw44IJ/73Oey2mqrpVQqZcyYMbn//vtz6aWXZvz48eV7r7jiivTr1y+HHnroEj/7+uuvzznnnNOi/gEAAAAAAAAAWLaW2xDSxIkTM2nSpEyePDlt2rRJp06d0qdPn3Tr1q3arWXWrFnNxrW1tUs0v02b5r/ss2fPbnFPy0pRFHnttdeandtpp53y61//Oj169Gh2fvDgwRk8eHC+8pWv5Ec/+lHuvffe8rXf//732WmnnbLuuutWom0AAAAAAAAAACpouQkhzZw5MzfffHPuv//+PPbYY5k8efIC7+vWrVuGDBmS7bffPnvttVe6du1a4U6TUqnUbNzU1LRE8+e/f0lDTJU0bdq07LXXXnn77bfzzjvvZMCAATn77LPTtm3bhc7p3LlzzjrrrHzta1/Ls88+m2TOO5911lk566yzKtU6AAAAAAAAAAAVslyEkK666qr86U9/yvvvv59kzuo7CzN58uTcf//9uf/++/O73/0uhx12WA499NAPrS60LM2/ndqSrmQ0//3z11uedO7cOT//+c+XeF67du1ywgkn5Mtf/nL53L333pvp06enY8eOi11n3333zdChQ5f4+cmcbeROOumkpZoLAAAAAACsOBqbioyvb1jo9b5dO6S2prTQ6wAAtFxVQ0hTp07N8OHDc9ddd5WDR6VS6UMrDS1IURSZPn16zjrrrDz44IM599xzP7Q92LLSuXPnZuPp06cv0fxp06Y1G3fo0KHFPS2PNttss6yzzjoZNWpUkjmrXT3xxBPZbrvtFrvGwIEDM3DgwGXVIgAAAAAA8DEwvr4hQ0+9Z6HXRwwflgHdF/8fSQMAsORqqvXgxsbGHHnkkeUA0tzwUVEUzT4LOjf//U8++WQOO+ywzJgxoyK99+zZs9n4gw8+WKL59fX1zca9e/ducU/Lq80226zZeMyYMVXqBAAAAAAAAACAZaVqKyH9+te/ziOPPNIsTFRbW5thw4bls5/9bDbZZJP069cvXbp0SVNTU6ZMmZIxY8bkhRdeyD//+c/cf//9aWxsLM997rnncvrpp+fEE09c5r337Nkz7du3L4eeJkyYsETz579/lVVWabXeljfzB6zq6uqq1AkAAAAAAAAAAMtKVUJIo0aNytVXX13edq0oimy++eY5/fTTM2jQoA/dX1NTk27duqVbt25Zf/31s+++++btt9/O8OHD8/jjj5eDSNdcc00OOOCAfOITn1im/ZdKpQwaNCgjR45MkowePbq8OtPiePvtt5uN11577VbvcXnR2NjYbPxx3XoOAAAAAAAAAGBlVpXt2P74xz82C6fsuOOOufLKKxcYQFqYQYMG5fLLL8/OO+/cbNu2Sy65ZFm0/CHrr79++bihoeFDwaJFee2115qNBw8e3Gp9tba6urq8+uqrGTFiRG677bZMmjRpiebPv+pTr169WrE7AAAAaD2NTUXGTp6+wE9jU1Ht9gAAAABguVbxlZBmz56df/3rX+XQUP/+/XPGGWektrZ2iWvV1NTkt7/9bXbfffeMHTs2RVHkrrvuykknnZS2bdsug+7/a4sttshtt91WHj/xxBNZffXVF2vuk08+WT7u06dP1lhjjVbvr7UMHz489957b3n8hz/8Ibvttttiz3/mmWeajTfZZJNW6w0AAABa0/j6hgw99Z4FXhsxfFgGdO9Y4Y4AAAAAYMVR8ZWQnnnmmUydOjXJnG3NDj/88HTsuPQ/xOvQoUMOO+ywFMWcf5E4derUvPDCC63S66J85jOfaTa+8847F2ve008/nXHjxpXH22+/fav21drmXfEpSe65Z8E/jF2QZ555Jm+++WZ5vOqqq2bNNddsrdYAAAAAAAAAAFhOVDyENHfbsrmhoZ133rnFNXfZZZckc0JNyYe3O1sWBg0alM0337w8vu+++/LSSy995Lzzzjuv2Xjfffdt9d5a0/z/f+68886MHj36I+c1NTXlt7/9bbNzX/3qV1u1NwAAAAAAAAAAlg8VDyHV1dWVjzt06JA+ffq0uGbv3r2braY0adKkFtdcHN/+9rfLx01NTTnmmGOavd/8Lr744mZbmw0ZMiRbbbXVMu2xpTbeeONsuumm5fGMGTNy3HHHZcaMGQudUxRFTj755Dz66KPlc3379s1XvvKVZdorAAAAAAAAAADVUfEQUmNj438fXtN6j5+3VmvWXZTPfe5z2XrrrcvjN998MwcccECeeOKJZvdNmTIlp512Wk477bTyudra2gwfPnyhtW+44Yast9565c+wYcNa/wUW009/+tPU1taWx0888US++tWv5plnnvnQvSNHjswhhxySq666qnyuVCrl5JNPTteuXSvSLwAAAAAAAAAAldWm0g/s2bNn+XjatGmZPHlyunfv3qKakydPztSpU8vbsfXq1atF9RZXqVTK6aefngMPPDBjx45NMieIdOCBB2bdddfNWmutlSlTpuSZZ57JtGnTms099thjM2TIkIr02VKbbLJJfvGLX+SEE04on3vhhRfy5S9/OWuuuWYGDx6coijy5ptvfmgrvFKplJNOOik77LBDpdsGAAAAAAAAAKBCKh5CWm211ZqN77///uyxxx4tqnnfffclmbMNWKlUSv/+/VtUb0kMHDgwl112Wb7zne/k7bffLp8fOXJkRo4c+aH7S6VSjj766Bx66KEV67E17L///mnfvn1+/vOfZ+rUqeXzb7zxRt54440FzunevXtOPPHEFv//BQAAAAAAAABg+Vbx7diGDBmStm3bplQqpSiKnH/++Wlqalrqeo2NjbngggvKqyC1a9cuW2yxRWu1u1jWWGON3HbbbTniiCMWuQrTVlttlSuvvDJHHnlkBbtrPXvuuWduvfXWfO1rX0unTp0Wel+vXr1y4IEH5v/+7/8EkAAAAAAAAKqksanI2MnTF/hpbCqq3R4A8DFT8ZWQ2rdvn+222y733ntvkmTUqFH51a9+1WyrryXxq1/9KiNHjkypVEqpVMq2226b9u3bt2bLi6VDhw75wQ9+kKOPPjpPPfVU3njjjUycODFt2rRJ//79M2TIkAwcOHCx6+2zzz7ZZ599Wq2/bbfdNq+88kqL66y66qr56U9/muHDh+f555/PyJEjM2nSpNTU1GSVVVbJoEGDstlmm6W2trYVugYAAAAAAGBpja9vyNBT71ngtRHDh2VA944V7ggA+DireAgpSb7zne/k3nvvLa+GdNVVV2XKlCk54YQT0qVLl8WqMWXKlJx88sm5+eaby3VKpVIOO+ywZdz9otXW1marrbbKVlttVdU+lrW2bdtm8803z+abb17tVgAAAAAAAAAAqLKqhJC22mqr7Lrrrvn73/9eDhDdfPPNue+++7L33ntn2LBh2WijjdKxY/P09bRp0/Liiy/m7rvvzo033pjJkyenKOYsFVkqlbLTTjt97MM/wMqrsanI+PqGhV7v27VDamtKFewIAAAAAAAAAOaoSggpSU466aS88MILefvtt8tBpLq6ulxyySW55JJLUiqV0q1bt3Tt2jVFUaS+vj719fXl0NG84aOiKLLWWmvl9NNPr9brACxzi1o2N7F0LgDAykxgHQAAAACotqqFkLp165arr746hx12WF566aWUSnN+GDpvyGjSpEmZNGnSAufPe//666+fc889d7G3cgMAAICPE4F1AABYdoT+AQAWT9VCSEnSp0+fXHnllTnrrLPyl7/8JTNmzEjy34DRohRFkbZt2+aAAw7Icccdl/bt2y/rdgEAAAAAAFjJCP0DACyeqoaQkqRz584ZPnx4Dj744Fx77bV5+OGH89xzz6WxsXGB97dp0ybrrbdePvOZz+TAAw9Mnz59KtwxAAAAAAAAAAAwr6qHkObq169fvv/97+f73/9+pkyZkrfffjuTJk1KXV1dkqR79+7p0aNH1l577XTsKE0OAAAAAAAAK4pFbWtnSzsA+HhYbkJI8+rSpUs22GCDarcBAAAAAAAAtIJFbWtnSzsA+HioqXYD83rrrbcyY8aMRd7z+OOP5+yzz84jjzxSoa4AAAAAAAAAAIBFqfpKSDNmzMi1116bq666Km+99VauvvrqbL755gu9/8knn8y5556bUqmUVVddNQcffHAOPPDACnYMwIrMkr8AAAAAAAAAra+qIaSXX345P/zhD/P666+nKIqUSqW8/vrriwwhvfPOO0mSoijyzjvv5Je//GVuvfXWnHPOOendu3elWgdgGVqWQSFL/gIAAAAAAAC0vqqFkF5++eV885vfzAcffJCiKMrn33jjjUXOmxtCKpXm/AV0URR56qmnctBBB+WKK64QRAL4GBAUAgAAAAAAAFix1FTjoTNmzMj3v//9TJ48Ocl/A0W1tbWpra1d5Nz99tsv++yzT7p161ZePSlJXn/99fzP//zPsm0cAAAAAAAAAAD4kKqshHTppZfmrbfeSqlUSlEUqampyTe+8Y0cfvjh6dWr1yLn7r777tl9990zc+bMXHLJJTn77LPT2NiYoijy8MMP54477sjuu+9eoTcBoNqW5dZtAAAAAAAAACyeqoSQrr322mYBpN///vfZddddl6hGu3btcvjhh2edddbJ0UcfXa534YUXCiEBrERs3QYAAAAAAABQfRXfjm3UqFEZM2ZMkjnbsH35y19e4gDSvHbeeefsu+++KYoiSfLSSy9l3LhxrdIrsGJobCoydvL0hX4am4pqtwgAAAAAAAAAH2sVXwnphRdeSJIURZFSqZSDDjqoxTUPPPDA/O1vfyuPn3rqqRYFm4AVy6JWwkmshgMAAAAAALCiaGwqMr6+YaHX+3btkNqaUgU7AmBxVTyENHHixPJxhw4dss4667S45gYbbJC2bdtm9uzZSZL33nuvxTUBAAAAAAAAqCz/+BxgxVXxEFJDw39Tq23btm2VmqVSKZ06dcrkyZNTKpUyffr0VqkLAAAAAADAx8+iVlqxygoAwNKpeAipS5cu5eP6+vrMmDEj7du3b1HNxsbG1NfXp1Sa8w1h9+7dW1QPAAAAAACAj69FrbRilRUAgKVTU+kHDho0qNn4kUceaXHNp556Kk1NTSmKIkmyyiqrtLgmAAAAAAAAAACweCq+EtImm2ySmpqacmDo0ksvzQ477NCimldddVX5uFQqZfPNN29RPQAA4ONjUUvsJ5bZBwAAAACA1lDxEFKvXr2y+eab54knnkgyZyWkK664IgcddNBS1bvjjjvyf//3f+Wt2DbccMP06tWr1foFAABWbItaYj+xzD4AAAAAALSGim/HliRf+9rXksxZtagoipx66qk555xz0tjYuER1rrrqqvzv//5vuU6SfOtb32rtdgEAAAAAAAAAgEWo+EpISbLbbrvlkksuyfPPP59SqZSmpqace+65ufnmm7PffvvlU5/6VNZbb720a9eu2bxZs2Zl5MiReeSRR3LDDTdk5MiRKYoipVIppVIpG264Yb74xS9W45UAWIRFbYNjCxygEmzHBQAAAAAAsGxVJYRUKpXy61//OgceeGA++OCD8kpGb7/9dv7whz/kD3/4Q2pra9O1a9d06dIlSTJ16tR88MEH5dWS5q58NHfuKquskrPPPrsarwPAR1jUNji2wAEqwXZcAAAAAAAAy1ZVQkhJss466+TPf/5zvve972XChAkpleb8y/O54aLZs2enrq4udXV1C5w/7/0DBw7MOeeck4EDB1ameQBYzll9CgAAAAAAAKikqoWQkmTTTTfNTTfdlFNPPTV33HFHeWu1xVEURWpqarL77rvnZz/7Wbp167aMuwVaQiACKsvqUwAAAAAAAEAlVTWElCSrrLJKfve73+Xoo4/OjTfemH/961959dVXyysiza+mpibrrLNOPv3pT+drX/taBg0aVOGOgaUhEAEAfFwJWwMAAAAAwHIQQpprzTXXzLHHHptjjz02U6dOzRtvvJFx48Zl2rRpKZVK6datW7p375611147Xbp0qXa7AAAASYStAQAAAAAgWY5CSPPq3LlzNtpoo2y00UbVbgUAAABYhqwmBgAAAAAfD60aQjr55JOz/fbbZ5tttknHjv61LwAAALBoVhODlhHkAwAAAJYXrRpCuvLKK3PVVVelTZs22XzzzbPddttl++23zwYbbNCajwEAAAAAIsgHAAAALD+WyXZss2bNymOPPZbHHnssZ5xxRnr16pVPfepT2W677bLddtuld+/ey+KxAAAAAAAAAABAFbRqCGmHHXbIo48+munTp6coivL5999/P7fddltuu+22JMn666+fT3/609luu+2y5ZZbpm3btq3ZBgAAAAAAAAAAUEGtGkI6//zzM2vWrDz55JN58MEH8+CDD+bll19OURTNQkkvv/xyXn755Vx00UXp0KFDtt1223Ioaa211mrNlgAAAFYKjU1Fxtc3LPR6364dUltTqmBHAAAAsHxa1J+h/fkZAJZeq2/H1rZt22y77bbZdttt86Mf/Sjvv/9+OZA0YsSITJgwoVkgafr06bnvvvty3333JUkGDBhQ3rZt6NCh6dq1a2u3CAAA8LEzvr4hQ0+9Z6HXRwwflgHdO1awIwAAAFg+LerP0P78DABLr9VDSPPr3bt39tprr+y1115JkpdeeikPPPBAHnzwwTz11FOZNWtWs1DSmDFjct111+W6665LbW1tNtlkk3IoadNNN02pJHkMAAAAAAAAAADLk2UeQprfBhtskA022CCHHXZYpk2bln//+9/llZLefPPNJCmHkmbPnp2nn346Tz/9dM4555x069YtQ4cOLYeS+vfvX+n2AQAAAAAAAACA+VQ8hDSvTp06ZaeddspOO+2UJHnnnXfKgaRHHnkkU6ZMabZK0uTJk3PnnXfmzjvvTJKsvfba5UDSNttsk/bt21flPQAAAAAAAAAAYGVW1RDS/FZbbbV85StfyVe+8pU0NjbmqaeeyoMPPpiHHnooL7zwQpqampqFkv7zn//kP//5Ty6//PK0a9cuW265Zbbbbrt8+tOfznrrrVfFNwEAAAAAAAAAgJXHchVCmldtbW222mqrbLXVVvnBD36QSZMm5eGHH84DDzyQhx56KOPHj28WSJoxY0ZGjBiRESNG5Le//W1efPHFKnYPAACw8mpsKjK+vmGh1/t27ZDamlIFOwIAAAAAYFlbbkNI8+vRo0d233337L777kmSV199tbxK0uOPP54ZM2Y0CyUBAABQHePrGzL01HsWen3E8GEZ0L1jBTsCAAAAAGBZW2FCSPP7xCc+kU984hM5+OCDM2PGjDz66KN58MEH88ADD+T111+vdnsAAAAAAAAAALDSWGFDSPNq3759tt9++2y//fYZPnx4xo0bV+2WAACAFdSithKzjRgAAAAAACzYxyKENL9+/fpVuwUAAGAFtaitxGwjBtW1qJBgIigIi0PYFgAAAFhWPpYhJAAAAGDhlmUIYVnWXlRIMBEUhMUhbAsAAAAsK60aQrrppptas9xS+9KXvlTtFgAAAGC5tSxDCAIOAAAAALByatUQ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FlzPwxUBAAAAzvNKCOn999+XYRh25wzDsEJFKSkp2rhxozZu3FhqbFGfojFF59LT05WWllah+5e8NwAAAAAAAAAAAAAAAIDK80oIqSwVCQc56lN0riLji4eY3C01NVXLly/Xf//7Xx08eFBpaWkKDAxURESEYmJiNGjQIHXp0qXK7l/cnj17tHz5cm3ZskXx8fHKyclReHi4IiMjdf3116t///5q3LixU3Nu2rRJ9913X6Vr2rx5sxo2bFjp8QAAAAAAAAAAAAAAAKievBZCqsowkDcsW7ZMsbGxysrKsjufkpKilJQU7du3T4sXL9b111+vf/3rXwoNDa2SOtLT0/XPf/5TX3zxRalrJ0+e1MmTJ7V582a9/vrrGj9+vP7yl79UeO4DBw64s1QAAAAAAAAAAAAAAOBFhTZTiRk5Dq+FBwXI14edplBxXgkhLViwwBu3rTKvv/66ZsyYUaG+a9eu1d69e7V06VI1bdrUrXWkpKRo1KhR2r9//wX75ubm6vnnn9e+ffv0r3/9q0LzE0ICAAAAAAAAAAAAAODikZiRo56x6xxei5vQV82C63m4ItRkXgkh/fGPf/TGbavEihUrSgWQbr75Zt1+++2KiopSWlqafvjhBy1evFhpaWmSpFOnTunRRx/VokWL5O/v75Y6bDabnnjiCbsAUnBwsP7yl7/o6quvVlBQkI4fP64VK1bom2++sfp8/PHHateunUaNGnXBexQPIXXp0kXTp093qsbAwECn+gMAAAAAAAAAAAAAAKBm8Np2bBeD5ORkTZs2zWr7+Pho+vTpuu222+z69ejRQ0OGDNGYMWN08OBBSdLOnTu1YMECjR492i21LF++XBs3brTarVq10vz58xUREWGda9++vW644QatWrVK48ePV0FBgSTp1Vdf1c0332zXt6TCwkIdPnzYanfs2FEtW7Z0S+0AAAAAAAAAAAAAAACo2Xy8XUBNNmfOHGVkZFjtsWPHlgogFWnevLlmzZql0NBQ69zs2bOVmZnpch35+fl66623rHbdunU1c+bMMkNFt912m5555hmrnZeXp3fffbfcexw9elS5ublWu3379i5WDQAAAAAAAAAAAAAAgIsFIaRKysvL0/Lly612o0aNLriqUWRkpB5++GGrnZqaqlWrVrlcy9q1a5WYmGi1hwwZolatWpU75u6771anTp2s9ooV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9VYtXLhQf//73615vvvuOy1ZssRjz9GhQwfrOCcnp1SwqDwHDx60axc9a2Vceuml1upRjuYuT1ZWlk6ePFluHR07drRr//LLLxWev2RfV54TAAAAAAAAAAAAAAAA1ZfHQ0jFQzKGYei+++5To0aNSvWLiYmxjv/3v/+Vum4Yhv76179q1KhRks4HkV577TWlpqa6u2SHLr/8crv21q1bKzz2559/to6bNGmili1bVrqOgIAAu6DQnj17lJOTU6Gx27dvl81ms9o9evQo1adr1652IafKPmdZ8wMAAAAAAAAAAAAAAKDm83gIqfgqSJJ04403OuxXPFizY8eOMud78skn1aZNG0lSRkaGFi5c6K5Sy/WnP/3Jrr1mzZoKjdu+fbsSEhKs9rXXXuvWWnJycrRhw4YKjStZs6NaAgMD1a1bN6v9888/Kykpyen569evr+7du1doHAAAAAAAAAAAAAAAAGoWj4eQsrOzrWNfX19FR0c77Fe0dZdpmjp8+LDy8vIc9vP19dXdd99ttT///HM3Vlu2qKgou3DOhg0btG/fvguOmzFjhl178ODBLtfSv39/u/bs2bPtVjhy5PTp0/rss8+sdsuWLcsMCd1+++3WcUFBgebMmXPBmr7++msdPXrUat9yyy0KCAi44DgAAAAAAAAAAAAAAADUPB4PIRmGYR0HBQWV2a9Vq1bWcWFhoY4dO1Zm3969e0s6H1j67bffFB8f73KdFXHfffdZxzabTY899phSUlLK7D9v3jytX7/easfExLhldaDo6Gj16dPHau/atUsvvvhimf1zcnI0duxYnTt3zjp3//332/23Ka5///5q3Lix1Z4/f76++eabMuc/duyYJk+ebLV9fX3tfq8AAAAAAAAAAAAAAABwcfF4CCkkJMQ6LigoKLNfkyZNVLduXat95MiRMvs2b97cru/u3btdK7KCbrrpJvXo0cNq//rrrxo6dKi2bt1q1y8zM1MvvfSSXnrpJeucr6+vJkyYUObcn3zyidq3b2999O3bt9xannzySfn7+1vt+fPna/z48UpOTrbr98svv2jEiBHauXOnda5Dhw666667ypy7Xr16GjdunNW22WwaN26c5s6da7dClWmaWrdunYYPH67U1FTr/LBhw6yVrQAAAAAAAAAAAAAAAHDx8fP0DYODg63jrKws5ebm2gWIimvevLkV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qv7zAFxseIeWrTa+Q9PS0tS/f38lJCRY50JDQ3X33XerZ8+eCg0NVXJysjZt2qSPPvpIqampVr+uXbtq4cKFrCgHuAnv57LVxvfzhZw9e1Z//vOfSwVICSEBFcM7t2y19Z27f/9+3XHHHVb7iSeeUL9+/SpcX/369dWkSZOKPxAAh3g/l622vp/j4+M1dOhQuwBScHCwRo4cqcsvv1zh4eE6ffq0vvrqK3366ad2/926d++uhQsXlpltAFAxbg8hrV69Wn//+9/PT14iIFTq5v//etEKRn369Ckz+b1lyxY99dRTOn36tNW/+Nx169bVI488ogceeMAtS9wBlTFmzBh99913VjsmJkbvvPNOmV9MbNiwQY8//rjd/2inTZumu+66q1TfTZs26b777rPajRo10gcffKBLL720VN///e9/euSRR5SVlWWdW7ZsmdN7miYlJWncuHEOE9LOfrLz1ltv6d1337Xal1xyiWbMmKF27dqV6puQkKDRo0fbLWU7ZMgQPf/8807VXxHDhw/Xzz//bLVHjhypCRMmlPqEMycnR//4xz/01VdfWed69+6tWbNmOX3P5cuX65///GepZS8JIQFVh/dz2Wrj+7kq/zwAFyPeoWWrje/Qktv4XHbZZZo5c6bDf5hMSEjQ/fffr0OHDlnnHnvssVKrcACoHN7PZauN7+cLeeihh7R+/fpS5wkhARXDO7dstfWdu3LlSo0fP95qL126VDExMe4pHkCF8X4uW219P48cOdLu969Xr156/fXXHe7I5GgVrenTp6t///5OPxeA3/m4c7KCggJNnz5dkn3AqFGjRnrggQf05ptvavbs2Xr++ed1++23q06dOlagyDRNrV+/Xhs3biw177vvvqt7771Xp06dchhA6tmzpz7//HONGTOGABK8Zt++fXaf6DRr1kwzZ84s96cZevfurRdffNHu3Pvvv++w72uvvWYdG4aht956y+EnOpJ01VVX2fWXpDfeeOMCT2Bvy5YtGjBggFNLNJbl9OnTmjNnjtUOCQnRBx984PATHUlq2rSp3nvvPdWpU8c69/nnnyszM9PlWorbsGGD3Sc611xzjSZOnOgw8R4QEKBXXnlFl19+eZnjLyQ3N1eTJk3SM888c8F9dwG4D+/nstXG93NV/3kALja8Q8tWG9+hiYmJWrlypdUOCgrS+++/X+ZPRjZt2lTvvPOO3TMvWrTI7qcMAVQO7+ey1cb384UsXbrUYQAJQMXwzi1bbX7nHjhwwDo2DENt27Z1Q+UAnMH7uWy19f381Vdf2f3+devWTe+//77DAJJ0fuWjKVOm2J1bsmRJhZ8HgGNuDSHFxcUpPj7eChVJ0oABA/TNN9/oqaeeUr9+/XTttdfqrrvu0ssvv6xvvvlGXbt2tQsWzZs3z27OKVOm6J133lFhYaEMw7ALN4WEhOjFF1/Uv//9b5eWIwbc4csvv7RrP/TQQwoJCbnguH79+qlbt25W++TJk9q/f79dn127dmnXrl1Wu0+fPhfci/W6667TDTfcYLU3btyoo0ePXrCe5ORkPf/887r33nt15swZ67wrW84sXLjQLnQzceJERUVFlTsmKipKt9xyi9U+d+6cWz7xKu6jjz6yaz/55JPlLrHo7++vZ5991u7cokWLKnSv7777TgMGDNCyZcvszrOVD1D1eD+XrTa+n6vyzwNwMeIdWrba+A5dvXq18vPzrfbdd999wS0koqOj1atXL6udlJTE+xNwA97PZauN7+fy/Pbbb3bfaLvuuuucngOo7Xjnlq02v3OLh5AiIyMVGBhYiUoBuIL3c9lq6/u5eM6gbt26evnlly+4JXz//v0VGRlptbdu3er28BVQ27g9hFTEMAz17dtXL774ourVq+ewf9OmTfXhhx9aqVHTNPXjjz/q7NmzkqTx48dr2bJldiEl0zRlmqYGDBig1atXa8CAAe58BKDSSv6P+Kabbqrw2D/96U927ZKf7BRfalBShZdbLLl85Jo1a8rtv2DBAt10001auHChCgoKrPPdu3fXE088UaF7lmSaplasWGG1L7300govY3jDDTcoICBAzZo1U6dOneyWsXRVZmamfvjhB6vdvn17derU6YLjOnTooM6dO1vt9evXKy8vr8z+x48f16hRozRmzBgdOXLEOu/v76+XXnpJERERlXwCABXF+9mx2vp+rso/D8DFiHeoY7X1Hbp9+3a7dvF/nCxPyZ8KP3HiRIXGASgb72fHauv7uSyFhYUaP368td3IFVdcoVGjRlW8cACSeOeWpba/c4uHkMpaGQVA1eL97FhtfT8fPnxYO3bssNp33nlnhRYxKco0BAYGKioqSpdddplOnz59wXEAyubWEFLRJ12macrHx0fPPPPMBcf4+/tr0qRJ1spJhYWF+vHHH/Wf//xHn332mST7rd0uueQSzZs3Ty+++KJCQ0PdWT7gkuJp5kaNGiksLKzCY0tuX1AUxCuyadMm69jX11c9e/as0LxXXXWV3RaFa9euLbf/Bx98YLfvqZ+fn8aMGaN///vflf77tmvXLrvk9uDBg8tNNRfXr18/7dixQ999950+/fRTt+7B+uOPP9p9QnfttddWeGzxn+TOysqyC2CWtHnz5lLXL730Ui1evJgQJeAhvJ8dq63v56r88wBcjHiHOlZb36FvvPGG1q9fr5kzZ+rJJ5+s8DdbcnJy7NoV/b0CUDbez47V1vdzWWbMmKFt27ZJkurXr6+XXnpJPj5u/edgoFbgnetYbX7npqSk2D17Wdsb/b/27jy65jv/4/hLIpEmJCoitkiKIagtNTrtUKVTZhw1HerE2qO0aW0zUw5S+6+0FU5npurU1GBsp2pMTYoOQ21F0Yq1jKWLpYgwEiIViSS/P3J83e+9We43994g3+fjnJyTzzff5fP95uuVr3vf9/MB4Fvkc9Hsms/O0w87F4SVZPLkyUpJSdHnn3+uVatWMcUm4KHKpa/ivgsXLkgqfEGxTZs2qlevnlvbtW/fXtHR0Tpz5oykwmB3DOU7IyH1799fY8eOLXZkJeBeWrNmjS5duqS0tDTdvHnT0raODwNS4QtDd+Tm5urkyZNGu2HDhm4P7RoUFKTGjRsbFdz//e9/lZOTU+rQg1LhPKmTJ09WixYt3DpWcfbt22dqd+rUyaP9ecvRo0dN7ZYtW7q9rfO6hw4dcuu8goODNXToUCUkJLj1OwDgHeRz0eyaz766H4CKigwtml0zVCqcaqJu3bqWpvNx/CSiVPj7BuAZ8rlods5nZ0eOHNG8efOMdmJioqKioozXbwG4j8wtmp0z13nEFIqQgHuDfC6aXfPZ8bwjIiLUrFmzMvQSgDd4tQjp6tWrRiVlq1atLG3bpk0bowhp9erVys/PV6VKlVRQUKAaNWooKSnJUkUkUN4iIyMVGRlZpm137dplajvOPXrmzBlTZbDVF+xjYmKMh53c3FydOXOmxP8UxcbGavjw4erWrZul4xTnm2++Mb4PCQlRTEyMV/brqe+++87UbtSokdvbOp/Dt99+W+L6QUFB6tWrl4YPH66IiAi3jwPAO8jnotk1n311PwAVFRlaNLtmaFls375dhw8fNtoNGzbkE4WAF5DPRSOfC2VnZ2vcuHHKzc2VVPjGU3x8vNvHBGBG5hbNzpnrOBWb5Dod240bN3T9+nWFhoa6XbgAwDryuWh2zWfH83acvg1A+fNqEZLjEOs1a9a0tG39+vWN7x0LkGJjY/Xhhx+W+Y8IcL87cuSI9u/fb7QDAwPVrl07o33+/HnT+nXq1LG0f+d/OxcuXCj2YWfOnDle/8N8+vRp4/uoqCjTkI8pKSn69NNPdfDgQV28eFG3b99WRESE2rZtq+7du/u0Otv5k39WrmtR17Q47du317Zt25g+EngAkc8VO5+tKu1+AGBGhpKhUuGnUqdOnWpa9vrrr3u8XwBlRz7bI59nzZql77//XpJUvXp1zZgxw+3jAfAeMrfiZq5jEZK/v78aNmyolJQU/fOf/9SXX36p1NRU4+chISF68skn1aNHD3Xr1o2piYH7APlc8fL5xo0bptGtoqKijO9zcnK0bds2rVu3TidOnNClS5cUGBioyMhI/fKXv9Tzzz+v2NhYK6cCoBReLULKyckxvg8JCbG0bVhYmMuyNm3aaOHChZb3BTwo8vPzXV4Ievrpp033vPM8tM7z1JbGeQ7c9PT0Ytf1RWWw48NarVq1JBVWO0+cOFEHDhxwWf/MmTM6c+aMkpOT1a5dO7399tuKjo72er8cr2uVKlUsfSKlWrVqCggIMD5RWNI1dSywBPDgIJ8rfj5b4c79AOAuMtSeGZqZmam0tDSlp6fr0KFDWrNmjcs0Fa+++qq6du1qab8AvId8tkc+79ixQx999JHRnjp1qnEtAJQfMrdiZ65jEVK1atU0bNgw7dy5s8h1s7KytGnTJm3atEktWrTQ7NmzLY3+AcC7yOeKmc/OhWN3znvbtm2aNm2aLl68aPr5zZs3de3aNZ08eVJLlizR7373O02aNMk0LR+AsvPz5s4KCgqM761WczvPhRkaGqq5c+fy5g4qtDlz5ujgwYNG28/PT6NGjTKtc/36dVPb6vCtzv+GnPfnS3l5ebp27ZrRDg4OVkpKivr06VPkg46zffv2KT4+XocOHfJ63xz7VZYhcR2va2Zmplf6BOD+QT6XzG757M79AOAuMrRkFTVDk5OT1b17dw0YMECzZs0yFSDVqFFDM2fO1OjRoy33CYD3kM8lqwj5nJGRoQkTJhiv0fbo0UPdu3e3fDwAniNzS/YgZ25eXp5pSqGMjIxiC5CcHT16VPHx8dqzZ4/lfgHwDvK5ZA9qPl+9etXUDg4O1pIlS/Taa6+5FCA5y8/P1yeffKKBAwe6FKABKBuvjoTkLZUqVdLgwYMtT+kGPEiSk5M1b94807IBAwa4zB/tOMKYJAUFBVk6jnOBn/P+fCkzM9NUnHjlyhUNGzZMWVlZkgrne42Pj1ebNm0UHBys1NRUbd26VatWrTL6mZ6ertdee03JyclenZbR8TpYvaaSFBAQUOS+ADz4yGfy2ZG79wOAQmSofTO0pOmBoqOjlZ+fr9zcXNMxAJQf8tke+Tx16lSlpaVJKvz095QpUywfC4DnyNyKnbmnT59Wdna2y/K4uDj169dPbdu2VWRkpLKysnT8+HGtW7dOycnJun37tqTCazdq1Cj94x//0COPPGK5fwDKjnyuuPnsXJS0Y8cObd261Wh36NBBPXv2VOPGjeXv76/vv/9e69at0+bNm411jh49qj/84Q9avHixKle+L0sogAfGffcvqKCgQJUqVWKIdlRo69ev14QJE0zLWrZsqXHjxrms6/yH1N/f39KxnP9Q3vnPTnm4deuWqb1v3z7j+6FDh2r06NGm/v3sZz9Tx44dNXDgQCUkJOjcuXOSCiuYJ06cqAULFnitb3eGbJSsX1PJ/LBTntcUgG+Rz+SzIyv3AwAyVLJ3hpb0ycIDBw7owIED+tvf/qY5c+ZQyAmUM/LZHvmcnJysDRs2GO233npLYWFhlo8FwDNkbsXPXMep2O6s/8Ybb2jAgAGm5YGBgXriiSf0xBNPKD4+XsOGDdOVK1ckFY6KkpiYqJUrV1ruH4CyIZ8rdj47n/edAqQqVapo5syZLqODxsbGqnv37tq8ebPGjBmjmzdvSpK+/vprLVq0SAkJCZb7B+Aur07H5k316tW7110AfGL16tUaM2aM8vLyjGWRkZGaM2eOS3W0VDgUpCPHCmZ35Ofnm9pl+cNeVo7n6GjgwIEaN25csZXEDRs21MKFC01DK+7YscOrwz86Xlfna+QOx3Mrz2sKwHfIZ/LZkdX7AbA7MpQM7devn9avX69Dhw4pJSVFq1at0ksvvWT6dOMPP/ygQYMGmaavAOBb5LM98vnChQuaMWOG0e7bt6+eeuopy8cB4Bky1x6ZGx4erp49e6pt27aKiIjQpEmTXAqQnLVq1Urz5s0zvYF+8OBBbdu2zXL/AFhHPlf8fC7uvGfNmlXi9MTPPPOM3n77bdOyRYsW6aeffrLcPwB33bdFSGUZhg243y1cuFATJkww/TEMDw/X3//+d9WtW7fIbZwfgBwrhd3hXA1cnm+cFvVgVbNmTY0dO7bUbaOjozVkyBDTsuTkZG91zXQdylKF7vg75M1o4MFHPpPPjspyPwB2RoaSoZL0+OOPq2HDhgoKClLVqlXVqlUrJSYmatWqVapdu7axXkZGhhITEy2/iAvAOvLZHvmcn5+v8ePHG1NQNGjQQOPHjy9jTwGUFZlrj8yVCp97Z8+erY8//lg7d+5U37593dpvq1at1Lt3b9Oyzz77zHL/AFhDPtsjn50LxySpc+fO+vWvf13qfrt3767HH3/caKenp2v79u2W+wfgrvtuOjagIrp9+7amT5+ujz/+2LQ8IiJCS5YsUaNGjYrd1rHqWJIxJKC7nKt1H3roIUvbe6JKlSouy3r27Ol2keELL7yg999/32jv2bPH9PPExET961//cmtf9erV05YtW4x2SEiIcS2tXlPJfF0pmgQeXOTzXeSzZ/cDYEdk6F1kaPGaNGmiefPmqU+fPsaLjIcPH9auXbvUoUMHrxwDgBn5fJcd8nnRokX66quvJBW++ZKUlKTg4GDLxwBQNmTuXXbIXE/17t3bdK/s3r3bq/sHcBf5fJcd8rmo83O3SFQqzOe9e/ca7T179ug3v/mN5T4CKHTfjoQEVBQ3btzQq6++6vKgExUVpRUrVpT6hmb16tVN7evXr1s6vvP6NWrUsLS9J0JDQ12qjx977DG3t69du7YiIyON9tmzZ732iWnH63rjxg1LQz/m5uaaHpDCw8O90icA5Yt8Jp8deXo/AHZDhpKhVjRv3lw9e/Y0Ldu0aZPX9g/gLvLZXvl84sQJvffee0b75ZdfVlxcnGedBeA2MtdemesNLVq0ME3JdvnyZeXk5Hj1GADIZzvmc2hoqMs2Vs67TZs2pvbp06fd3haAK4qQAB/68ccf1bdvX+3cudO0vHnz5lqxYoWioqJK3Yfj1AWSdOXKFUt9+N///mdqR0REWNreE35+fi4PV1aP77j+7du3LT/sFcfxuubl5Sk9Pd3tba9evWp66KpZs6ZX+gSg/JDP5LMjb9wPgJ2QoWRoWTz77LOm9okTJ7y6fwDksx3zeePGjaY3r+fPn6+mTZuW+PXiiy+a9j937lzTzxMTE8tyioDtkLn2y1xv8Pf3V1hYmGlZRkaGV48B2B35bM98dj7HKlWqqFq1am7v33l7K30D4IoiJMBHjh8/rr59++rUqVOm5R06dNDy5cvd/qMfHR1tav/444+W+nHu3DlTOyYmxtL2nmrQoIGpnZ2dbWn7ypXNs0Y6zvnqCed+Wbmuztf0kUce8UqfAJQP8rkQ+VzIW/cDYBdkaCEy1DrnvvGCHuBd5HMh8hlAeSBzC5G5ZeN8nuU5TRNQ0ZHPheyYz1FRUaYRoHJzcy312/mcrYzSBMBV5dJXAWDVkSNHNGTIEJfq4N69e+vNN990+WNWkho1aqhWrVpKS0uTJJeHp9J8++23xveRkZEun7TwtdjYWO3fv99oX7x40dL2jp8E8ff3N1Uuz5w5UzNnzixTv5o1a2Zqnzx5Uq1bt3Zr25MnT5raTZo0KVMfAJQ/8vku8tm79wNgB2ToXXbM0JycHB05ckTnzp3T2bNnVbNmTfXv39/tvjm/gBccHOz2tgBKRj7fZcd8BlC+yNy77Ji5+fn5Sk1N1ZUrV3T16lXl5+erS5cubvctJyfHdO8EBARYGqkDQPHI57vsmM+BgYFq2LChce3z8/OVlpamOnXquLV/5w9KOU/JB8Aan7yzUlBQoGnTpmnatGll3t45iNxVqVIlHTt2rEzbAt5w8uTJIh90Ro0apZEjR5Zpn3FxcdqwYYMkKTU1VefPn1e9evVK3e706dOmYSJ//vOfl+n4nmjXrp0++ugjo71nzx49//zzbm1748YNnT171mjHxMSY5sz2RFxcnKm9f/9+9enTx61tU1JSTO127dp5pU8AfIt8NrN7PvvifgAqMjLUzI4ZeuvWLVPRUb169SwVITmesyTVqlXL7W0BFI98NrNbPg8aNEg9e/a01JdDhw5p7Nixpn0MGjTIaFetWtXS/gA7IXPN7Ja5knT9+nV17tzZaIeEhGjfvn2m0TdKcuTIEdPIHI8++qhb2wEoGflsZsd8lqTHHnvMVAC2e/du9erVy639O9cWNG7c2K3tABTNZ9OxFRQUWP7ydPui9gOUp4yMDCUkJJgedPz8/PR///d/Hr2h+dRTT5na//nPf9zabuPGjaZ2x44dy9yHsurQoYPpAWXz5s26efOmW9tu3brV9InpX/ziF17rV+PGjU0PjFu2bFFOTk6p22VnZ+uLL74w2vXr12codOABQD67snM+++p+ACoqMtSVHTO0WrVqql+/vtE+f/68Dhw44HbfPv/8c1ObQn7Ac+SzK7vlc/Xq1RUdHW3pKzIy0nSMsLAw08/Dw8O9cMZAxUPmurJb5kqFuVu7dm2jnZWVpb1797rdt08//dTUfvLJJ93eFkDRyGdXdsxnSaYiUUlat26d233bsmWLqe3N8wbsyCdFSJUqVbonX8C9NnHiRNOwhn5+fkpKSlLfvn092m/Xrl0VFBRktJcuXaqffvqpxG2ysrK0bNkyo121alV17drVo36URVhYmJ555hmjff36dc2dO7fU7XJzczV//nzTsh49eni1b88995zxfUZGhlauXFnqNitWrDA9zLpbRQ3g3iKfXdk5n311PwAVFRnqyq4Z2q1bN1Pb+VyKc/LkSa1du9Zo+/n53ZPfG1DRkM+u7JrPAHyPzHVl18z91a9+ZWovXLjQrT6dOnVKycnJRrty5cqKj493a1sAxSOfXdk1nzt27GgadXnXrl3avn17qfs/d+6c1qxZY7RDQ0NditAAWOP1IiRPRjDy9Au4l9auXevy6d7Ro0dbHha7KNWqVdMLL7xgtC9evKjx48ebqpEd5efna+zYscZ8tZLUv39/BQcHe9yXshg2bJhpSNrFixdr06ZNJW4zY8YM0xyvcXFxLkM1eqp///6qUqWK0Z49e7YOHjxY7Pr79+/Xn/70J6MdEhKifv36ebVPALyPfC6eHfPZl/cDUBGRocWzY4b27dvX9GnKLVu2aNWqVSX2JzU1VSNGjNDt27eNZb169VJ0dHRppwKgBORz8eyYzwB8i8wtnh0zNz4+Xv7+/kZ7x44dWr58eYn9SU1N1ciRI3Xr1i3TfpxHpwNgDflcPDvmc+XKlZWQkGBaNnnyZH333XfF7v/GjRt6/fXXlZ2dberjvfq9ARVFZW/u7J133vHm7oAHRkFBgebNm2daFhsbq2effVZnzpyxvL+wsDBVr17dtGz48OFat26dMjIyJBUO6fjKK6/ozTffNA1feP78eU2ZMkU7d+40ltWqVcvlD295io2N1ZAhQ7RgwQJJ0u3bt/X73/9eCQkJGjx4sB5++GFj3UuXLumtt94yDW0ZEBCgiRMner1fkZGRGjp0qD744ANJ0q1bt/TSSy9p8uTJ+u1vf2v8ZzIvL0/JycmaMWOGaWjIESNGqEaNGl7vFwDvIZ9LZrd8Lo/7AahIyNCS2S1DJalBgwZ65ZVXjH1L0pQpU3Tu3DklJCSoatWqxvK8vDz9+9//VlJSki5fvmwsr1+/vsaMGePVcwbshnwumR3zGYDvkLkls2PmNmnSRP379zeNdjJ9+nSdPn1aI0aMMJ1zXl6eNmzYoJkzZ5oKExo0aMAzMeAh8rlkdsxnSerXr58+++wzY/r4S5cuqX///ho3bpyee+45BQYGGusePnxYkydP1vHjx41ldevWvae/N6CiqFTAEEKAx7Zv3+7VP0ojR47UqFGjXJZ/8cUXGj58uHJzc41l/v7+atWqlWrVqqW0tDQdOnTIVIkdEBCgxYsXq127dh71afXq1XrjjTeM9jvvvGNpGPC8vDwlJiaahjSUpKCgIMXGxioyMlJpaWk6fPiw8vLyTOtMmzbNZ5/2y83NVUJCgr788kvT8lq1aqlFixYqKCjQsWPHTP9JlKROnTrpww8/9HgqyC5duuj8+fOSpHr16rnMOwvAM+Rz6eyUz+V1PwAVBRlaOjtl6B15eXn64x//qI0bN5qWBwUFqVWrVgoPD1dmZqaOHDmia9eumdapUaOGli9frkaNGnl4hoC9kc+ls2M+u2vv3r168cUXjTbPtEDJyNzS2TFzc3JylJCQoN27d5uWBwQEGL+zzMxMffPNN0bxwh1169bV0qVLFRUV5dkJAjZHPpfOjvksSVevXtXgwYN14sQJ0/KHH35YTZs2VWhoqH744QedOnXK9PPg4GAtXbpULVu29ODsAEheHgkJsKsdO3aUy3GeeuopzZkzR2PGjDHmns3LyzMqep2FhIToz3/+s8cPOt7g7++vpKQk1axZU4sXLzYeyLKzs4sdarFKlSqaPHmy+vTp47N+BQQEaN68eRo5cqTp95iWlubygHNH586d9d5773nlxT8AvkU+l85O+Vxe9wNQUZChpbNTht7h7++vd999V7NmzTJ9+js7O1tfffVVsdu1bNlS77//vurUqWPxbAA4I59LZ8d8BuAbZG7p7Ji5gYGB+uCDDzR16lTTm/u5ublKSUkpdrvWrVvr3XffpQAJ8ALyuXR2zGep8ANQy5Yt0+jRo02jU6Wnp2vPnj1FblO7dm3NmTOHAiTAS/xKXwVAac6dO1dux+rSpYvWr1+vHj16mOZNdRQQEKAePXpo7dq16tSpU7n1rTR+fn4aP368PvnkEz399NMKCAgocr2AgAB1795dycnJPn3QuSMoKEgLFixQUlKSYmJiil0vJiZGM2bM0F//+tdirz2A+wv57B675HN53g9ARUCGuscuGeooMDBQkyZN0rJly9ShQwf5+RX/0kLTpk2VlJSklStXUoAEeAn57B475jMA7yNz3WPHzA0ODtbs2bM1f/58tW/fvsQ3xps1a6bp06dr5cqVFCABXkI+u8eO+SwVTq+3cOFC/eUvf9Gjjz5a4novv/yy1q5dq9atW1s5BQAlYDo24AGWlZWlr7/+WhcvXtS1a9cUHBysBg0aqG3btgoLC7vX3StVZmam9u3bp0uXLik9PV0PPfSQYmJiFBcXp9DQ0HvWr1OnTunYsWO6cuWK8vLyFB4erhYtWqhp06Z88hCAW8hn3yCfAXsgQ33DlxmakZGhlJQUpaamKjMzU1WrVlV4eLji4uIUGRnppTMAcK+Rz77BMy6AopC5vuHLzE1PT9f+/ftNz8QRERFq3rw5hUdABUI++4avn4nPnz+vw4cP6/Lly8rKylJoaKiaNGmi1q1bKzAw0AtnAMARRUgAAAAAAAAAAAAAAAAAPMJ0bAAAAAAAAAAAAAAAAAA8QhESAAAAAAAAAAAAAAAAAI9QhAQAAAAAAAAAAAAAAADAIxQhAQAAAAAAAAAAAAAAAPAIRUgAAAAAAAAAAAAAAAAAPEIREgAAAAAAAAAAAAAAAACPUIQEAAAAAAAAAAAAAAAAwCMUIQEAAAAAAAAAAAAAAADwCEVIAAAAAAAAAAAAAAAAADxCERIAAAAAAAAAAAAAAAAAj1CEBAAAAAAAAAAAAAAAAMAjFCEBAAAAAAAAAAAAAAAA8AhFSAAAAAAAAAAAAAAAAAA8QhESAAAAAAAAAAAAAAAAAI9QhAQAAAAAAAAAAAAAAADAIxQhAQAAAAAAAAAAAAAAAPAIRUgAAAAAAAAAAAAAAAAAPEIREgAAAAAAAAAAAAAAAACPUIQEAAAAAAAAAAAAAAAAwCMUIQEAAAAAAAAAAAAAAADwCEVIAAAAAAAAAAAAAAAAADxCERIAAAAAAAAAAAAAAAAAj1CEBAAAAAAAAAAAAAAAAMAjFCEBAAAAAAAAAAAAAAAA8AhFSAAAAAAAAAAAAAAAAAA8QhESAAAAAAAAAAAAAAAAAI/8P65ZqTa4FnBlAAAAAElFTkSuQmCC"
     },
     "metadata": {
      "image/png": {
       "width": 1168,
       "height": 769
      }
     },
     "output_type": "display_data"
    }
   ],
   "execution_count": 12
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:07.369809Z",
     "start_time": "2024-09-19T12:32:05.340945Z"
    }
   },
   "cell_type": "code",
   "source": [
    "def getWeekday(row):\n",
    "    if row == 'null':\n",
    "        return row\n",
    "    else:\n",
    "        return date(int(row[0:4]), int(row[4:6]), int(row[6:8])).weekday() + 1\n",
    "\n",
    "dfoff['weekday'] = dfoff['Date_received'].astype(str).apply(getWeekday)\n",
    "dftest['weekday'] = dftest['Date_received'].astype(str).apply(getWeekday)\n",
    "\n",
    "# weekday_type :  周六和周日为1，其他为0\n",
    "dfoff['weekday_type'] = dfoff['weekday'].apply(lambda x : 1 if x in [6,7] else 0 )\n",
    "dftest['weekday_type'] = dftest['weekday'].apply(lambda x : 1 if x in [6,7] else 0 )"
   ],
   "id": "631478eedbc7882a",
   "outputs": [],
   "execution_count": 13
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:09.140673Z",
     "start_time": "2024-09-19T12:32:08.802179Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# change weekday to one-hot encoding \n",
    "weekdaycols = ['weekday_' + str(i) for i in range(1,8)]\n",
    "print(weekdaycols)\n",
    "\n",
    "tmpdf = pd.get_dummies(dfoff['weekday'].replace('null', np.nan))\n",
    "tmpdf.columns = weekdaycols\n",
    "dfoff[weekdaycols] = tmpdf\n",
    "\n",
    "tmpdf = pd.get_dummies(dftest['weekday'].replace('null', np.nan))\n",
    "tmpdf.columns = weekdaycols\n",
    "dftest[weekdaycols] = tmpdf\n"
   ],
   "id": "631415e4ee3e7e",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['weekday_1', 'weekday_2', 'weekday_3', 'weekday_4', 'weekday_5', 'weekday_6', 'weekday_7']\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\86155\\AppData\\Local\\Temp\\ipykernel_1192\\3765406765.py:5: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n",
      "  tmpdf = pd.get_dummies(dfoff['weekday'].replace('null', np.nan))\n"
     ]
    }
   ],
   "execution_count": 14
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:32.730393Z",
     "start_time": "2024-09-19T12:32:10.593530Z"
    }
   },
   "cell_type": "code",
   "source": [
    "def label(row):\n",
    "    if row['Date_received'] == 'null':\n",
    "        return -1\n",
    "    if row['Date'] != 'null':\n",
    "        td = pd.to_datetime(row['Date'], format='%Y%m%d') -  pd.to_datetime(row['Date_received'], format='%Y%m%d')\n",
    "        if td <= pd.Timedelta(15, 'D'):\n",
    "            return 1\n",
    "    return 0\n",
    "dfoff['label'] = dfoff.apply(label, axis = 1)"
   ],
   "id": "7e11c4148410c11a",
   "outputs": [],
   "execution_count": 15
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:34.509416Z",
     "start_time": "2024-09-19T12:32:34.495645Z"
    }
   },
   "cell_type": "code",
   "source": "print(dfoff['label'].value_counts())",
   "id": "859938f2777c2449",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "label\n",
      " 0    988887\n",
      "-1    701602\n",
      " 1     64395\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "execution_count": 16
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:35.811203Z",
     "start_time": "2024-09-19T12:32:35.805830Z"
    }
   },
   "cell_type": "code",
   "source": "print('已有columns：',dfoff.columns.tolist())",
   "id": "12064de92882e222",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "已有columns： ['User_id', 'Merchant_id', 'Coupon_id', 'Discount_rate', 'Distance', 'Date_received', 'Date', 'discount_rate', 'discount_man', 'discount_jian', 'discount_type', 'distance', 'weekday', 'weekday_type', 'weekday_1', 'weekday_2', 'weekday_3', 'weekday_4', 'weekday_5', 'weekday_6', 'weekday_7', 'label']\n"
     ]
    }
   ],
   "execution_count": 17
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:37.199621Z",
     "start_time": "2024-09-19T12:32:37.186244Z"
    }
   },
   "cell_type": "code",
   "source": "dfoff.head(2)",
   "id": "221c3eebe3417278",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  Merchant_id Coupon_id Discount_rate Distance Date_received  \\\n",
       "0  1439408         2632      null          null        0          null   \n",
       "1  1439408         4663     11002        150:20        1      20160528   \n",
       "\n",
       "       Date  discount_rate  discount_man  discount_jian  ... weekday  \\\n",
       "0  20160217       1.000000             0              0  ...    null   \n",
       "1      null       0.866667           150             20  ...       6   \n",
       "\n",
       "   weekday_type weekday_1  weekday_2  weekday_3  weekday_4  weekday_5  \\\n",
       "0             0     False      False      False      False      False   \n",
       "1             1     False      False      False      False      False   \n",
       "\n",
       "   weekday_6  weekday_7  label  \n",
       "0      False      False     -1  \n",
       "1       True      False      0  \n",
       "\n",
       "[2 rows x 22 columns]"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>Merchant_id</th>\n",
       "      <th>Coupon_id</th>\n",
       "      <th>Discount_rate</th>\n",
       "      <th>Distance</th>\n",
       "      <th>Date_received</th>\n",
       "      <th>Date</th>\n",
       "      <th>discount_rate</th>\n",
       "      <th>discount_man</th>\n",
       "      <th>discount_jian</th>\n",
       "      <th>...</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekday_type</th>\n",
       "      <th>weekday_1</th>\n",
       "      <th>weekday_2</th>\n",
       "      <th>weekday_3</th>\n",
       "      <th>weekday_4</th>\n",
       "      <th>weekday_5</th>\n",
       "      <th>weekday_6</th>\n",
       "      <th>weekday_7</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1439408</td>\n",
       "      <td>2632</td>\n",
       "      <td>null</td>\n",
       "      <td>null</td>\n",
       "      <td>0</td>\n",
       "      <td>null</td>\n",
       "      <td>20160217</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>null</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1439408</td>\n",
       "      <td>4663</td>\n",
       "      <td>11002</td>\n",
       "      <td>150:20</td>\n",
       "      <td>1</td>\n",
       "      <td>20160528</td>\n",
       "      <td>null</td>\n",
       "      <td>0.866667</td>\n",
       "      <td>150</td>\n",
       "      <td>20</td>\n",
       "      <td>...</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 22 columns</p>\n",
       "</div>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 18
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:39.336361Z",
     "start_time": "2024-09-19T12:32:38.758659Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# data split\n",
    "df = dfoff[dfoff['label'] != -1].copy()\n",
    "train = df[(df['Date_received'] < '20160516')].copy()\n",
    "valid = df[(df['Date_received'] >= '20160516') & (df['Date_received'] <= '20160615')].copy()\n",
    "print(train['label'].value_counts())\n",
    "print(valid['label'].value_counts())"
   ],
   "id": "b19e012eeb978aff",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "label\n",
      "0    759172\n",
      "1     41524\n",
      "Name: count, dtype: int64\n",
      "label\n",
      "0    229715\n",
      "1     22871\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "execution_count": 19
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:32:41.011695Z",
     "start_time": "2024-09-19T12:32:41.005928Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# feature\n",
    "original_feature = ['discount_rate','discount_type','discount_man', 'discount_jian','distance', 'weekday', 'weekday_type'] + weekdaycols\n",
    "print(len(original_feature),original_feature)"
   ],
   "id": "d67f022fe272c114",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "14 ['discount_rate', 'discount_type', 'discount_man', 'discount_jian', 'distance', 'weekday', 'weekday_type', 'weekday_1', 'weekday_2', 'weekday_3', 'weekday_4', 'weekday_5', 'weekday_6', 'weekday_7']\n"
     ]
    }
   ],
   "execution_count": 20
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:11.283337Z",
     "start_time": "2024-09-19T12:32:50.125994Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# model1\n",
    "predictors = original_feature\n",
    "print(predictors)\n",
    "\n",
    "def check_model(data, predictors):\n",
    "    \n",
    "    classifier = lambda: SGDClassifier(\n",
    "        loss='log_loss', \n",
    "        penalty='elasticnet', \n",
    "        fit_intercept=True, \n",
    "        max_iter=100, \n",
    "        shuffle=True, \n",
    "        n_jobs=1,\n",
    "        class_weight=None)\n",
    "\n",
    "    model = Pipeline(steps=[\n",
    "        ('ss', StandardScaler()),\n",
    "        ('en', classifier())\n",
    "    ])\n",
    "\n",
    "    parameters = {\n",
    "        'en__alpha': [ 0.001, 0.01, 0.1],\n",
    "        'en__l1_ratio': [ 0.001, 0.01, 0.1]\n",
    "    }\n",
    "\n",
    "    folder = StratifiedKFold(n_splits=3, shuffle=True)\n",
    "    \n",
    "    grid_search = GridSearchCV(\n",
    "        model, \n",
    "        parameters, \n",
    "        cv=folder, \n",
    "        n_jobs=-1, \n",
    "        verbose=1)\n",
    "    grid_search = grid_search.fit(data[predictors],  data['label'])\n",
    "    \n",
    "    return grid_search\n",
    "\n",
    "if not os.path.isfile('1_model.pkl'):\n",
    "    model = check_model(train, predictors)\n",
    "    print(model.best_score_)\n",
    "    print(model.best_params_)\n",
    "    with open('1_model.pkl', 'wb') as f:\n",
    "        pickle.dump(model, f)\n",
    "else:\n",
    "    with open('1_model.pkl', 'rb') as f:\n",
    "        model = pickle.load(f)"
   ],
   "id": "d5a9edf71517f34d",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['discount_rate', 'discount_type', 'discount_man', 'discount_jian', 'distance', 'weekday', 'weekday_type', 'weekday_1', 'weekday_2', 'weekday_3', 'weekday_4', 'weekday_5', 'weekday_6', 'weekday_7']\n",
      "Fitting 3 folds for each of 9 candidates, totalling 27 fits\n",
      "0.9481401180986534\n",
      "{'en__alpha': 0.001, 'en__l1_ratio': 0.001}\n"
     ]
    }
   ],
   "execution_count": 21
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:13.218556Z",
     "start_time": "2024-09-19T12:33:13.095877Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# valid predict\n",
    "y_valid_pred = model.predict_proba(valid[predictors])\n",
    "valid1 = valid.copy()\n",
    "valid1['pred_prob'] = y_valid_pred[:, 1]\n",
    "valid1.head(2)"
   ],
   "id": "e236f4352b0af373",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  Merchant_id Coupon_id Discount_rate Distance Date_received  Date  \\\n",
       "1  1439408         4663     11002        150:20        1      20160528  null   \n",
       "4  1439408         2632      8591          20:1        0      20160613  null   \n",
       "\n",
       "   discount_rate  discount_man  discount_jian  ... weekday_type  weekday_1  \\\n",
       "1       0.866667           150             20  ...            1      False   \n",
       "4       0.950000            20              1  ...            0       True   \n",
       "\n",
       "  weekday_2  weekday_3  weekday_4  weekday_5  weekday_6  weekday_7  label  \\\n",
       "1     False      False      False      False       True      False      0   \n",
       "4     False      False      False      False      False      False      0   \n",
       "\n",
       "   pred_prob  \n",
       "1   0.019902  \n",
       "4   0.097405  \n",
       "\n",
       "[2 rows x 23 columns]"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>Merchant_id</th>\n",
       "      <th>Coupon_id</th>\n",
       "      <th>Discount_rate</th>\n",
       "      <th>Distance</th>\n",
       "      <th>Date_received</th>\n",
       "      <th>Date</th>\n",
       "      <th>discount_rate</th>\n",
       "      <th>discount_man</th>\n",
       "      <th>discount_jian</th>\n",
       "      <th>...</th>\n",
       "      <th>weekday_type</th>\n",
       "      <th>weekday_1</th>\n",
       "      <th>weekday_2</th>\n",
       "      <th>weekday_3</th>\n",
       "      <th>weekday_4</th>\n",
       "      <th>weekday_5</th>\n",
       "      <th>weekday_6</th>\n",
       "      <th>weekday_7</th>\n",
       "      <th>label</th>\n",
       "      <th>pred_prob</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1439408</td>\n",
       "      <td>4663</td>\n",
       "      <td>11002</td>\n",
       "      <td>150:20</td>\n",
       "      <td>1</td>\n",
       "      <td>20160528</td>\n",
       "      <td>null</td>\n",
       "      <td>0.866667</td>\n",
       "      <td>150</td>\n",
       "      <td>20</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0.019902</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1439408</td>\n",
       "      <td>2632</td>\n",
       "      <td>8591</td>\n",
       "      <td>20:1</td>\n",
       "      <td>0</td>\n",
       "      <td>20160613</td>\n",
       "      <td>null</td>\n",
       "      <td>0.950000</td>\n",
       "      <td>20</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0.097405</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 23 columns</p>\n",
       "</div>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 22
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:20.142437Z",
     "start_time": "2024-09-19T12:33:17.718110Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# avgAUC calculation\n",
    "vg = valid1.groupby(['Coupon_id'])\n",
    "aucs = []\n",
    "for i in vg:\n",
    "    tmpdf = i[1] \n",
    "    if len(tmpdf['label'].unique()) != 2:\n",
    "        continue\n",
    "    fpr, tpr, thresholds = roc_curve(tmpdf['label'], tmpdf['pred_prob'], pos_label=1)\n",
    "    aucs.append(auc(fpr, tpr))\n",
    "print(np.average(aucs))"
   ],
   "id": "b030b3cfae81c8cf",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5310537424583209\n"
     ]
    }
   ],
   "execution_count": 23
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:23.408476Z",
     "start_time": "2024-09-19T12:33:23.150530Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# test prediction for submission\n",
    "y_test_pred = model.predict_proba(dftest[predictors])\n",
    "dftest1 = dftest[['User_id','Coupon_id','Date_received']].copy()\n",
    "dftest1['label'] = y_test_pred[:,1]\n",
    "dftest1.to_csv('submit1.csv', index=False, header=False)\n",
    "dftest1.head()"
   ],
   "id": "6da046f94387c4d2",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  Coupon_id  Date_received     label\n",
       "0  4129537       9983       20160712  0.105175\n",
       "1  6949378       3429       20160706  0.144652\n",
       "2  2166529       6928       20160727  0.005148\n",
       "3  2166529       1808       20160727  0.017399\n",
       "4  6172162       6500       20160708  0.063257"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>Coupon_id</th>\n",
       "      <th>Date_received</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4129537</td>\n",
       "      <td>9983</td>\n",
       "      <td>20160712</td>\n",
       "      <td>0.105175</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6949378</td>\n",
       "      <td>3429</td>\n",
       "      <td>20160706</td>\n",
       "      <td>0.144652</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2166529</td>\n",
       "      <td>6928</td>\n",
       "      <td>20160727</td>\n",
       "      <td>0.005148</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2166529</td>\n",
       "      <td>1808</td>\n",
       "      <td>20160727</td>\n",
       "      <td>0.017399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6172162</td>\n",
       "      <td>6500</td>\n",
       "      <td>20160708</td>\n",
       "      <td>0.063257</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 24
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:30.099585Z",
     "start_time": "2024-09-19T12:33:29.325784Z"
    }
   },
   "cell_type": "code",
   "source": [
    "feature = dfoff[(dfoff['Date'] < '20160516') | ((dfoff['Date'] == 'null') & (dfoff['Date_received'] < '20160516'))].copy()\n",
    "data = dfoff[(dfoff['Date_received'] >= '20160516') & (dfoff['Date_received'] <= '20160615')].copy()\n",
    "print(data['label'].value_counts())\n"
   ],
   "id": "f1ac97e109d2f9a4",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "label\n",
      "0    229715\n",
      "1     22871\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "execution_count": 25
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:35.528215Z",
     "start_time": "2024-09-19T12:33:35.466827Z"
    }
   },
   "cell_type": "code",
   "source": "fdf = feature.copy()",
   "id": "7a616ceafae0248c",
   "outputs": [],
   "execution_count": 26
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:40.736436Z",
     "start_time": "2024-09-19T12:33:40.670211Z"
    }
   },
   "cell_type": "code",
   "source": "u = fdf[['User_id']].copy().drop_duplicates()",
   "id": "1900b0a2d7568e6b",
   "outputs": [],
   "execution_count": 27
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:51.637218Z",
     "start_time": "2024-09-19T12:33:51.397918Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# u_coupon_count : num of coupon received by user\n",
    "u1 = fdf[fdf['Date_received'] != 'null'][['User_id']].copy()\n",
    "u1['u_coupon_count'] = 1\n",
    "u1 = u1.groupby(['User_id'], as_index = False).count()\n",
    "u1.head(2)"
   ],
   "id": "3a000d2dc73252bd",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  u_coupon_count\n",
       "0        4               1\n",
       "1       35               4"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>u_coupon_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>35</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 28
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:33:57.743318Z",
     "start_time": "2024-09-19T12:33:57.541806Z"
    }
   },
   "cell_type": "code",
   "source": [
    "u2 = fdf[fdf['Date'] != 'null'][['User_id']].copy()\n",
    "u2['u_buy_count'] = 1\n",
    "u2 = u2.groupby(['User_id'], as_index = False).count()\n",
    "u2.head(2)"
   ],
   "id": "a4321be7c5cbc5a7",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  u_buy_count\n",
       "0      165           10\n",
       "1      184            1"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>u_buy_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>165</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>184</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 29
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:02.994718Z",
     "start_time": "2024-09-19T12:34:02.844796Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# u_buy_with_coupon : times of user buy offline (with coupon)\n",
    "u3 = fdf[((fdf['Date'] != 'null') & (fdf['Date_received'] != 'null'))][['User_id']].copy()\n",
    "u3['u_buy_with_coupon'] = 1\n",
    "u3 = u3.groupby(['User_id'], as_index = False).count()\n",
    "u3.head(2)"
   ],
   "id": "d1c4c3adccdf5cbd",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  u_buy_with_coupon\n",
       "0      184                  1\n",
       "1      417                  1"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>u_buy_with_coupon</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>184</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>417</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 30
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:08.605780Z",
     "start_time": "2024-09-19T12:34:08.335755Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# u_merchant_count : num of merchant user bought from\n",
    "u4 = fdf[fdf['Date'] != 'null'][['User_id', 'Merchant_id']].copy()\n",
    "u4.drop_duplicates(inplace = True)\n",
    "u4 = u4.groupby(['User_id'], as_index = False).count()\n",
    "u4.rename(columns = {'Merchant_id':'u_merchant_count'}, inplace = True)\n",
    "u4.head(2)"
   ],
   "id": "d3f3352794f6ece9",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  u_merchant_count\n",
       "0      165                 2\n",
       "1      184                 1"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>u_merchant_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>165</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>184</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 31
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:14.558740Z",
     "start_time": "2024-09-19T12:34:14.378109Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# u_min_distance\n",
    "utmp = fdf[(fdf['Date'] != 'null') & (fdf['Date_received'] != 'null')][['User_id', 'distance']].copy()\n",
    "utmp.replace(-1, np.nan, inplace = True)\n",
    "u5 = utmp.groupby(['User_id'], as_index = False).min()\n",
    "u5.rename(columns = {'distance':'u_min_distance'}, inplace = True)\n",
    "u6 = utmp.groupby(['User_id'], as_index = False).max()\n",
    "u6.rename(columns = {'distance':'u_max_distance'}, inplace = True)\n",
    "u7 = utmp.groupby(['User_id'], as_index = False).mean()\n",
    "u7.rename(columns = {'distance':'u_mean_distance'}, inplace = True)\n",
    "u8 = utmp.groupby(['User_id'], as_index = False).median()\n",
    "u8.rename(columns = {'distance':'u_median_distance'}, inplace = True)\n",
    "u8.head(2)"
   ],
   "id": "1693fdb32ce4769b",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  u_median_distance\n",
       "0      184                0.0\n",
       "1      417                0.0"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>u_median_distance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>184</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>417</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 32
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:19.783258Z",
     "start_time": "2024-09-19T12:34:19.775871Z"
    }
   },
   "cell_type": "code",
   "source": "u.shape, u1.shape, u2.shape, u3.shape, u4.shape, u5.shape, u6.shape, u7.shape, u8.shape",
   "id": "596265feb5f2f0ed",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((453684, 1),\n",
       " (412635, 2),\n",
       " (173770, 2),\n",
       " (29594, 2),\n",
       " (173770, 2),\n",
       " (29594, 2),\n",
       " (29594, 2),\n",
       " (29594, 2),\n",
       " (29594, 2))"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 33
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:26.119676Z",
     "start_time": "2024-09-19T12:34:25.201359Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# merge all the features on key User_id\n",
    "user_feature = pd.merge(u, u1, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u2, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u3, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u4, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u5, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u6, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u7, on = 'User_id', how = 'left')\n",
    "user_feature = pd.merge(user_feature, u8, on = 'User_id', how = 'left')"
   ],
   "id": "d725e10aee0cfde",
   "outputs": [],
   "execution_count": 34
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:30.882175Z",
     "start_time": "2024-09-19T12:34:30.821353Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# calculate rate\n",
    "\n",
    "user_feature['u_use_coupon_rate'] = user_feature['u_buy_with_coupon'].astype('float')/user_feature['u_coupon_count'].astype('float')\n",
    "user_feature['u_buy_with_coupon_rate'] = user_feature['u_buy_with_coupon'].astype('float')/user_feature['u_buy_count'].astype('float')\n",
    "user_feature = user_feature.fillna(0)\n",
    "user_feature.head(2)\n"
   ],
   "id": "42d3bf1bd028ded",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "   User_id  u_coupon_count  u_buy_count  u_buy_with_coupon  u_merchant_count  \\\n",
       "0  1439408             2.0          1.0                0.0               1.0   \n",
       "1  1832624             1.0          0.0                0.0               0.0   \n",
       "\n",
       "   u_min_distance  u_max_distance  u_mean_distance  u_median_distance  \\\n",
       "0             0.0             0.0              0.0                0.0   \n",
       "1             0.0             0.0              0.0                0.0   \n",
       "\n",
       "   u_use_coupon_rate  u_buy_with_coupon_rate  \n",
       "0                0.0                     0.0  \n",
       "1                0.0                     0.0  "
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User_id</th>\n",
       "      <th>u_coupon_count</th>\n",
       "      <th>u_buy_count</th>\n",
       "      <th>u_buy_with_coupon</th>\n",
       "      <th>u_merchant_count</th>\n",
       "      <th>u_min_distance</th>\n",
       "      <th>u_max_distance</th>\n",
       "      <th>u_mean_distance</th>\n",
       "      <th>u_median_distance</th>\n",
       "      <th>u_use_coupon_rate</th>\n",
       "      <th>u_buy_with_coupon_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1439408</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1832624</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 35
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:39.599620Z",
     "start_time": "2024-09-19T12:34:39.164392Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# add user feature to data on key User_id\n",
    "data2 = pd.merge(data, user_feature, on = 'User_id', how = 'left').fillna(0)\n",
    "\n",
    "# split data2 into valid and train\n",
    "train, valid = train_test_split(data2, test_size = 0.2, stratify = data2['label'], random_state=100)"
   ],
   "id": "a78c8e5ee3490b03",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\86155\\AppData\\Local\\Temp\\ipykernel_1192\\1953378163.py:2: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n",
      "  data2 = pd.merge(data, user_feature, on = 'User_id', how = 'left').fillna(0)\n"
     ]
    }
   ],
   "execution_count": 36
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:34:56.934029Z",
     "start_time": "2024-09-19T12:34:47.775931Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# model2\n",
    "predictors = original_feature + user_feature.columns.tolist()[1:]\n",
    "print(len(predictors), predictors)\n",
    "\n",
    "if not os.path.isfile('2_model.pkl'):\n",
    "    model = check_model(train, predictors)\n",
    "    print(model.best_score_)\n",
    "    print(model.best_params_)\n",
    "    with open('2_model.pkl', 'wb') as f:\n",
    "        pickle.dump(model, f)\n",
    "else:\n",
    "    with open('2_model.pkl', 'rb') as f:\n",
    "        model = pickle.load(f)"
   ],
   "id": "908b39191c6e9230",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24 ['discount_rate', 'discount_type', 'discount_man', 'discount_jian', 'distance', 'weekday', 'weekday_type', 'weekday_1', 'weekday_2', 'weekday_3', 'weekday_4', 'weekday_5', 'weekday_6', 'weekday_7', 'u_coupon_count', 'u_buy_count', 'u_buy_with_coupon', 'u_merchant_count', 'u_min_distance', 'u_max_distance', 'u_mean_distance', 'u_median_distance', 'u_use_coupon_rate', 'u_buy_with_coupon_rate']\n",
      "Fitting 3 folds for each of 9 candidates, totalling 27 fits\n",
      "0.9106389928143002\n",
      "{'en__alpha': 0.001, 'en__l1_ratio': 0.001}\n"
     ]
    }
   ],
   "execution_count": 37
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-19T12:35:01.491496Z",
     "start_time": "2024-09-19T12:34:59.698008Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# valid set performance \n",
    "valid['pred_prob'] = model.predict_proba(valid[predictors])[:,1]\n",
    "validgroup = valid.groupby(['Coupon_id'])\n",
    "aucs = []\n",
    "for i in validgroup:\n",
    "    tmpdf = i[1] \n",
    "    if len(tmpdf['label'].unique()) != 2:\n",
    "        continue\n",
    "    fpr, tpr, thresholds = roc_curve(tmpdf['label'], tmpdf['pred_prob'], pos_label=1)\n",
    "    \n",
    "    aucs.append(auc(fpr, tpr))\n",
    "    #aucs.append(roc_auc_score(tmpdf['label'], tmpdf['pred_prob']))\n",
    "print(np.average(aucs))"
   ],
   "id": "3263e8220ce73b70",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5983310549123831\n"
     ]
    }
   ],
   "execution_count": 38
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
